相关疑难解决方法(0)

为什么HttpClient.PostAsync和PutAsync会处理内容?

HttpClient.PostAsync方法的行为是处理提供的HttpContent对象.

有许多方法可以解决这种问题,包括HttpContent为客户端上的每个调用构建一个new ,或者将内容加载到流中并更改指针.

我想知道为什么调用此方法会自动调用其IDisposable参数的处理?据我所知,这不是.NET中的常见行为

还值得注意的是,这种行为也在PUT请求中被观察到,这是幂等的,因此这种行为是为了防止再次发送信息的前提似乎不正确.

.net dispose idisposable dotnet-httpclient

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

C#跟踪截断长消息

在C#中,我启用了跟踪和网络跟踪源.

    <?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <system.diagnostics>
    <sources>
      <source name="System.Net" tracemode="includehex" maxdatasize="1024">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="System.Net" value="Verbose"/>
    </switches>
    <sharedListeners>
      <add name="System.Net"
        type="TraceTest.StringWriterTraceListener, TraceTest"
        initializeData="myfile.log"
      />
    </sharedListeners>
    <trace autoflush="true" indentsize="4" />    
  </system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但是更长的消息被截断(长度像12Kb/30行,不长就像1GB!)所以我最终会遇到只记录部分web reqiest标头的情况.

如何解决?

或者您是否知道一本书或一些资源可以非常详细地解释.Net跟踪和调试?

日志示例:

            System.Net Information: 0 : [1204] Connection#63291458 - Received headers
        {
        Transfer-Encoding: chunked
        Connection: keep-alive
        Keep-Alive: timeout=10
        Content-Type: text/html; charset=windows-1251
        Date: Mon, 04 Jul 2016 17:50:33 GMT
        Set-Cookie: uid=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; …
Run Code Online (Sandbox Code Playgroud)

c#

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

标签 统计

.net ×1

c# ×1

dispose ×1

dotnet-httpclient ×1

idisposable ×1