标签: httpwebresponse

获取HttpWebResponse标头而不重定向

我想检查特定页面是否被重定向.但是,每当我尝试这个时,我回来的标题似乎来自重定向的页面,而不是最初请求的页面(特别是,状态是好的而不是我想看到的302).

有什么我可以设置,以便它不会自动遵循重定向?

WebRequest request = WebRequest.Create(@"http://www.example.com/page.html");
request.Method = "HEAD";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.Redirect)
{
    ...
}
else
{
    MessageBox.Show("HTTP Code: " + response.StatusCode + "\r\n\r\n" + response.StatusDescription);
    return false;
}
Run Code Online (Sandbox Code Playgroud)

c# redirect header http httpwebresponse

1
推荐指数
1
解决办法
2297
查看次数

当我提前关闭HttpWebResponse时,Streamreader不起作用

Uri targetUri = new Uri(targetURL);    
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string data = reader.ReadToEnd();
response.Close();
Run Code Online (Sandbox Code Playgroud)

为什么上面的代码工作正常,但以下代码没有?请注意,我在以下代码中提前关闭响应.

Uri targetUri = new Uri(targetURL);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
response.Close();
string data = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

c# httpwebresponse streamreader

1
推荐指数
1
解决办法
618
查看次数

什么字符集应该用于 Location: 301 响应中的标头?

尝试cot.ag/o1LnfW从 .NET 使用 HttpWebRequest使用 URI ,我得到 301 Moved 响应,响应头 Location 有一个(不正确的)值:

http://www.joycemeyer.org/BroadcastHome.aspx?video=Living_Beyond_Your_Feelings_â_Pt_1&utm_source=Twitter&utm_campaign=EEL&utm_medium=post&utm_term=September29&utm_content=post

从 Fiddler,我得到了(正确的)Location 标头值:

http://www.joycemeyer.org/BroadcastHome.aspx?video=Living_Beyond_Your_Feelings_–_Pt_1&utm_source=Twitter&utm_campaign=EEL&utm_medium=post&utm_term=September29&utm_content=post

注意到 - 在 Fiddler URL 中出现的不同之处。在 Fiddler 的情况下,字节是 E2 80 93。在 .Net 的情况下,字节是 E2 3F 3F。这会导致不正确的标头解释,随后无法遵循重定向。

我认为这是一个 .NET 框架错误,但我不知道 RFC 说它应该作为什么发送。我应该将此作为错误报告给 Microsoft,还是 bit.ly 在提供错误代码页中的标头时失败?

encoding location rfc httpwebrequest httpwebresponse

1
推荐指数
1
解决办法
3961
查看次数

如何在C#中修改Http方法?

在HttpWebRequest中,用户可以将Method作为Post OR Get或Put或DELETE等传递.

但是对于我们的特定项目,我需要将HttpMethod作为"POST/api/login HTTP/1.0"传递.

但是在.NET CF中不允许这样做.

那么任何人都可以告诉我解决这个问题,以便自定义Http方法.

提前致谢.

c# compact-framework httpwebrequest httpwebresponse

1
推荐指数
1
解决办法
1383
查看次数

C# Visual Studio 中发生 422(无法处理的实体)错误时如何读取 json 响应

我正在使用“PUT”方法将一些 JSON 数据发送到 Web 服务,但遇到422 无法处理的实体错误。
我怎样才能真正看到 JSON 格式的服务器响应?我深入研究了异常,但仍然找不到 json 响应。

前任:

JSON 请求:

{
  customer:
  {
    name: "asd",
    address: "test"
  }
}
Run Code Online (Sandbox Code Playgroud)

如果一切正常,它应该回复我一些 JSON 数据。

前任:

{
  customer:
  {
    id: 1,
    name: "asd",
    address: "test"
  }
}
Run Code Online (Sandbox Code Playgroud)

rest json httpwebresponse visual-studio-2010 c#-4.0

1
推荐指数
1
解决办法
2万
查看次数

如何显示HTTP 401基本身份验证对话框

我是网络开发的新手.我有Android应用程序使用HTTPServer托管一些网页.我正在使用Netty来解码/编码请求/响应.现在,我想在有人导航到我的网页时显示基本身份验证对话框.像这样的东西:在此输入图像描述

我可以得到一些指示吗?这是HTTP内置的功能,任何RFC?我需要编写一些java脚本吗?任何帮助都会很棒.

javascript httpwebrequest httpwebresponse httpserver http-status-code-401

1
推荐指数
1
解决办法
4504
查看次数

从 url 下载 .xls 文件

我正在尝试从 url 下载 xls 文件:http : //www.site.com/ff/excel/file.aspx? deven =0

我正在使用此代码,但下载完成后,文件未正确下载。如何正确下载此文件?

string remoteFilename="http://www.site.com/ff/excel/file.aspx?deven=0";
string localFilename = "D:\\1\\1.xls";
Stream remoteStream = null;
Stream localStream = null;
WebResponse response = null;

try
{
    // Create a request for the specified remote file name
    WebRequest request = WebRequest.Create(remoteFilename);
    if (request != null)
    {
        // Send the request to the server and retrieve the
        // WebResponse object 
        response = request.GetResponse();
        response.ContentType = "application/vnd.ms-excel";

        if (response != null)
        {
            // Once the WebResponse object has …
Run Code Online (Sandbox Code Playgroud)

c# excel httpwebrequest httpwebresponse

1
推荐指数
1
解决办法
9594
查看次数

WebResponse contentLength属性是-1?

我有一个Windows应用程序,可以获取URL和下载.jpeg文件.对于某些url,ContentLength属性为-1,因此抛出异常.

这是我的代码:

var url = new Uri(sUrlToReadFileFrom[i]);
_request = (HttpWebRequest)WebRequest.Create(url);
var response = (System.Net.WebResponse)_request.GetResponse();
_response = response;
_response.Close();
Run Code Online (Sandbox Code Playgroud)

这是网址:http: //photos.autonexus.com/imager/115-005-CA/P2GTPI4AB9/640/10132013133959/1FAHP0HA3AR373228_1.jpg 这里有一些关于我的http请求的信息:

Headers = {Transfer-Encoding: chunked
Connection: keep-alive
Content-Disposition: inline; filename="phpThumb_generated_thumbnail.jpeg"
Content-Type: image/jpeg
Date: Wed, 12 Nov 2014 00:31:29 GMT
Server: nginx
X-Powered-By: PleskLin}
Run Code Online (Sandbox Code Playgroud)

我认为分块头导致了问题,但我已经谷歌搜索了2天,没有好的解决方案,或者我找不到一个好的解决方案.

以下是错误的屏幕截图: 在此输入图像描述

正如您在第130行中看到的那样,因为_response.ContentLength已经为-1,因此iSize将为-1并且它会在第149行抛出异常.

c# httpwebrequest httpwebresponse http-content-length web

1
推荐指数
2
解决办法
3771
查看次数

内容长度始终为负数

我不知道,但内容长度始终为负,即使响应具有正确的内容长度标头。例如:

class Program
{
    static void Main()
    {
        try
        {
            string result = Get("http://stackoverflow.com/");
            Console.WriteLine("Response length = {0}", result.Length);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

    static string Get(string adr)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adr);
        req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0";
        req.Proxy = null;
        req.KeepAlive = false;
        req.Headers.Add("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8");
        req.AllowAutoRedirect = true;
        req.Timeout = 10000;
        req.ReadWriteTimeout = 10000;
        req.MaximumAutomaticRedirections = 10;
        req.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        req.Method = WebRequestMethods.Http.Get;


        using (var response = (HttpWebResponse) req.GetResponse())
        { …
Run Code Online (Sandbox Code Playgroud)

.net c# http httpwebrequest httpwebresponse

1
推荐指数
1
解决办法
3729
查看次数

如何读取 HttpWebResponse 两次

如何两次读取 HttpWebResponse?有可能吗?

我的代码不起作用,也respStream.Position = 0;没有帮助。

有什么线索吗?

var data = (HttpWebRequest)WebRequest.Create(url);  
var response = (HttpWebResponse)data.GetResponse();

var respStream = response.GetResponseStream();

string responseText;         
using (var reader = new StreamReader(respStream, encoding))
{
     responseText = reader.ReadToEnd().Trim();
}
// Do something and read it again
using (var reader = new StreamReader(respStream, encoding))
{
     responseText = reader.ReadToEnd().Trim();
}
Run Code Online (Sandbox Code Playgroud)

.net c# webrequest httpwebresponse streamreader

1
推荐指数
1
解决办法
1870
查看次数