解码响应c#

时间:2013-07-03 03:43:18

标签: c# encoding webresponse

我正在开发一些用于测试的API,当我进行webrequest时,尤其是当我检索webresponse时,我遇到了问题。 我使用这段代码:

string request = HttpPost(“http://iunlocker.net/check_imei.php”,“ime_i = 013270000134001”);


  public static string HttpPost(string URI, string Parameters)
        {
            try
            {
            System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST"; 
            byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
            req.ContentLength = bytes.Length;
            System.IO.Stream os = req.GetRequestStream();
            os.Write(bytes, 0, bytes.Length);
            os.Close();

            System.Net.WebResponse resp= req.GetResponse();

            if (resp == null) return null;
            System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
            return sr.ReadToEnd().Trim();
            }
            catch (Exception ex) { }
            return null;    
        }

电话中的网站就是一个例子,因为有了这个和其他网站,我无法正确检索结果。我收到异常“错误403”

任何人都可以通过告诉我可能做错了什么来帮助我吗?

我认为问题出在编码/解码上 - 实际上使用Fiddler它问我是否要在看到文本之前解码 - 但是使用另一个网站,用于示例,我从Fiddler收到相同的消息但是我可以毫无问题地检索响应。

提前致谢。

2 个答案:

答案 0 :(得分:1)

HTTP 403错误表示“禁止访问”。目的地网站因其自身原因拒绝履行您的请求。

鉴于这个特定的网站http://iunlocker.net/,我猜测它可能正在检查HTTP_REFERER。换句话说,它拒绝满足您的请求,因为它知道它不是来自正在查看表单的浏览器。

[编辑]查看

的回复后
curl --form ime_i=013270000134001 -i http://iunlocker.net/check_imei.php

我可以看到即时响应是设置cookie和重定向。

HTTP/1.1 307 Temporary Redirect
Server: nginx
Date: Wed, 03 Jul 2013 04:00:27 GMT
Content-Type: text/html
Content-Length: 180
Connection: keep-alive
Set-Cookie: PMBC=35e9e4cd3a7f9d50e7f3bb39d43750d1; path=/
Location: http://iunlocker.net/check_imei.php?pmtry=1

<html>
<head><title>307 Temporary Redirect</title></head>
<body bgcolor="white">
<center><h1>307 Temporary Redirect</h1></center>
<hr><center>nginx</center>
</body>
</html>

这个网站不希望你刮它;如果你想打败它,你将不得不使用它的饼干。

答案 1 :(得分:0)

http://en.wikipedia.org/wiki/HTTP_403 - 网络服务器拒绝您访问该网址。

也许您正在使用的IP地址不允许访问该资源。检查Web服务器。