我似乎无法掌握HTTP POST方法。我刚刚学会了如何使用GET方法来检索网页,但现在我正在尝试在网页上填写信息,似乎无法使其正常工作。返回的源代码始终是无效页面(充满了损坏的图像/不是正确的信息)
public static void jsonPOST(string url)
{
url = "http://treasurer.maricopa.gov/Parcel/TaxReceipt.aspx/GetTaxReceipt";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(new Uri(url));
httpWebRequest.ContentType = "application/json; charset=utf-8";
httpWebRequest.Accept = "application/json, text/javascript, */*; q=0.01";
httpWebRequest.Headers.Add("Accept-Encoding: gzip, deflate");
httpWebRequest.CookieContainer = cookieJar;
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("Accept-Language: en-US,en;q=0.5");
httpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW65; Trident/7.0; MAM5; rv:11.0) like Gecko";
httpWebRequest.Referer = "http://treasurer.maricopa.gov/Parcel/TaxReceipt.aspx";
string postData = "{\"startDate\":\"1/1/2013\",\"parcelNumber\":\"17609419\"}";
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postData);
httpWebRequest.ContentLength = bytes.Length;
System.IO.Stream os = httpWebRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length); //Push it out there
os.Close();
System.Net.WebResponse resp = httpWebRequest.GetResponse();
if (resp == null)
{
Console.WriteLine("null");
}
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
string source = sr.ReadToEnd().Trim();
}
编辑:我更新了代码以反映我的新问题。我现在的问题是源代码不是回复给我的。我只是在source
中获取原始JSON信息。我可以使用它来反序列化我需要获取的信息,但我很好奇为什么实际的源代码不会回复给我
答案 0 :(得分:0)
返回的源代码始终是无效页面(包含损坏的图像/不是正确的信息)
听起来你只是在不考虑相对路径的情况下获得源代码。只要网站上有相对路径,它就无法在您的副本上正确显示。您必须在有用之前替换所有相对路径。
http://webdesign.about.com/od/beginningtutorials/a/aa040502a.htm
在这种情况下,请记住跨域ajax可能是个问题。