带有JSON的HTTP Post

时间:2013-12-23 20:02:22

标签: c# json post

我似乎无法掌握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信息。我可以使用它来反序列化我需要获取的信息,但我很好奇为什么实际的源代码不会回复给我

1 个答案:

答案 0 :(得分:0)

返回的源代码始终是无效页面(包含损坏的图像/不是正确的信息)

听起来你只是在不考虑相对路径的情况下获得源代码。只要网站上有相对路径,它就无法在您的副本上正确显示。您必须在有用之前替换所有相对路径。

http://webdesign.about.com/od/beginningtutorials/a/aa040502a.htm

在这种情况下,请记住跨域ajax可能是个问题。