.net – 如何在c#中读取httpWebRequest的请求流,我得到错误“流不可读”?

.net – 如何在c#中读取httpWebRequest的请求流,我得到错误“流不可读”?,第1张

概述我想从HttpWebRequest继承的自定义HttpWebRequest类中读取请求流,并尝试以不同的阶段读取请求流,但仍然不能确定如何在类中实现. 这个自定义的HttpWebRequest用于序列化一个soap消息,我想知道以字符串格式发送了什么请求.我还实现了自定义HttpRequestCreator,HttpWebResponse,但是仍然找不到可以读取请求流的地方/阶段. 如果我在Mem 我想从httpWebRequest继承的自定义httpWebRequest类中读取请求流,并尝试以不同的阶段读取请求流,但仍然不能确定如何在类中实现.

这个自定义的httpWebRequest用于序列化一个soap消息,我想知道以字符串格式发送了什么请求.我还实现了自定义httpRequestCreator,httpWebResponse,但是仍然找不到可以读取请求流的地方/阶段.

如果我在MemoryStream中输出所有内容,然后复制内容以请求流,任何人都知道我可以执行哪个阶段?在构造函数中,BeginGetRequestStream,EndGetRequestStream或GetRequestStream?

解决方法 如果出现错误返回码(如404,503,401等等),将导致“流不可读”.你可能没有检查你的状态码.

如果内容是文本,这样的东西可以工作:

public string DownloadString(string uri,out int status){    string result= null;    status = 0;    httpWebResponse response= null;    try    {        httpWebRequest request = (httpWebRequest) httpWebRequest.Create(uri);        // augment the request here: headers (Referer,User-Agent,etc)        //     cookieContainer,Accept,etc.        response= (httpWebResponse) request.GetResponse();        EnCoding responseEnCoding = EnCoding.GetEnCoding(response.CharacterSet);        using (StreamReader sr = new StreamReader(response.GetResponseStream(),responseEnCoding))        {            result = sr.ReadToEnd();        }        status = (int) response.StatusCode;    }    catch (WebException wexc1)    {        // any statusCode other than 200 gets caught here        if(wexc1.Status == WebExceptionStatus.ProtocolError)        {            // can also get the decription:             //  ((httpWebResponse)wexc1.Response).StatusDescription;            status = (int) ((httpWebResponse)wexc1.Response).StatusCode;        }    }    finally    {        if (response!= null)            response.Close();    }    return result;}
总结

以上是内存溢出为你收集整理的.net – 如何在c#中读取httpWebRequest的请求流,我得到错误“流不可读”?全部内容,希望文章能够帮你解决.net – 如何在c#中读取httpWebRequest的请求流,我得到错误“流不可读”?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1259399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存