使用xcsrf令牌进行C#post
我正在尝试使用C#fetching使用xcsrf令牌进行C#post,c#,xml,odata,httpwebrequest,csrf,C#,Xml,Odata,Httpwebrequest,Csrf,我正在尝试使用C#fetchingx-csrf-token发布XML数据 我能够使用get方法获取令牌,当我尝试发布时,我收到403错误。 如果我错了,请帮助我 string-Token=”“; 公共字符串Postdata=“55556697abiabhchaitanyakennedy500060X”; 公共字符串URL=”http://server:8000/sap/opu/odata/sap/ZCUST_TESTING_SRV/post_cust"; HttpWebRequest请求=(Ht
x-csrf-token
发布XML数据
我能够使用get方法获取令牌,当我尝试发布时,我收到403错误。如果我错了,请帮助我
string-Token=”“;
公共字符串Postdata=“55556697abiabhchaitanyakennedy500060X”;
公共字符串URL=”http://server:8000/sap/opu/odata/sap/ZCUST_TESTING_SRV/post_cust";
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(URL);
request.Credentials=新的网络凭据(“用户名”、“密码”);
request.ContentType=“应用程序/atom+xml”;
request.Accept=“application/xml,application/atom+xml”;
request.Method=“GET”;
请求头[“x-csrf-token”]=“Fetch”;
HttpWebResponse responseH=(HttpWebResponse)request.GetResponse();
令牌=响应头[“x-csrf-Token”];
//xcookies=responseH.Headers[“设置cookie”];
responseH.Close();
//在这里,我正在创建Post方法。。。
string requestString=HttpUtility.UrlPathEncode(数据)//XMLDoc是正在提交的XML数据字符串。
byte[]byteArray=System.Text.Encoding.ASCII.GetBytes(Postdata);
HttpWebRequest\u post=(HttpWebRequest)WebRequest.Create(URL);
request_post.Credentials=新的网络凭据(“用户名”、“密码”);
请求_post.Method=“post”;
请求\u post.ContentType=“应用程序/xml”;
请求\u post.Accept=“应用程序/xml”;
请求发布头[“x-csrf-token”]=token;
request_post.ContentLength=byteArray.Length;
request_post.KeepAlive=false;
Stream dataStream1=request_post.GetRequestStream();
dataStream1.Write(byteArray,0,byteArray.Length);
dataStream1.Close();
HttpWebResponse response1=(HttpWebResponse)请求_post.GetResponse();
dataStream1=response1.GetResponseStream();
StreamReader reader1=新的StreamReader(dataStream1);
字符串responseFromServer1=reader1.ReadToEnd();
reader1.Close();
dataStream1.Close();
响应1.Close();
看不出您的代码有任何错误。只需发布一些一般提示:
- 您确定NetworkCredential用户名/密码吗
- 尝试查看模拟浏览器是否会有所不同,例如: request_post.UserAgent=“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/535.2(KHTML,如Gecko)Chrome/15.0.874.121 Safari/535.2”
- 检查您的请求参数和标题是否正确(接受, 内容类型)
- 您能否以其他方式成功完成此请求?你是想 模仿web应用程序的行为?您可以使用该web应用程序并查看 使用并确保 所有标题都正确(包括cookie)