gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:42:53 24 4
gpt4 key购买 nike

我想从继承自 HttpWebRequest 的自定义 HttpWebRequest 类读取请求流,并且我尝试在不同阶段读取请求流,但仍不确定如何读取在类里面实现这一目标。

这个自定义的HttpWebRequest用于序列化soap消息,我想知道以字符串格式发送了什么请求。我还实现了自定义 HttpRequestCreatorHttpWebResponse 但仍然找不到可以读取请求流的位置/阶段。

如果我将所有内容输出到 MemoryStream 中,然后将内容复制到请求流,有人知道我可以在哪个阶段执行此操作吗?在构造函数中,BeginGetRequestStreamEndGetRequestStream 还是 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的请求流,我收到错误“该流不可读”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com