程序里面模拟做一个POST请求,出现了错误,Fiddler抓包,提示是Url无法识别,如同下面这种情况:
Request Body里面的参数没有读到,换成:
这样就没问题了。
第一种情况为什么取不到数据呢?
其实还是程序的问题,在这个form中加了个
System.Net.ServicePointManager.Expect100Continue = false;
就全部调通了,可能是服务器端改了某个东西造成的。
你是怎么写到body的。
public string GetXmlContent(string url, string param) { string responseText = string.Empty; ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data = encoding.GetBytes(param); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Timeout = 30*1000;//超时时间为30s request.ContentType = "application/x-www-form-urlencoded"; try { request.ContentLength = data.Length; Stream sm = request.GetRequestStream(); sm.Write(data, 0, data.Length); sm.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode.ToString() != "OK") { responseText = string.Empty; } else { StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseText = reader.ReadToEnd(); } } catch (Exception) { return responseText; } return responseText; }
url包括基地址和pid,param包含api和sign
@最长的路漫漫:
看起来没什么问题啊,param参数是怎样的,拼接好了的吗。
@achu.me: 这个问题自己解决了,其实不是这个地方的问题,第一种取不到数据是程序的问题。