zoukankan      html  css  js  c++  java
  • HTTP 417解决方案

      在一次模拟HTPP请求时,本人在项目中的一般处理程序中调用客户接口返回非成功的结果。为了方便调试,所以将核心代码拷贝至控制台中进逐个调试。

    在控制台中,启动调试时提示:

      未经处理的异常:  System.Net.WebException: 远程服务器返回错误: (417) Expectation
    failed。

      由于代码与在一般处理程序中的一致,并无区别。后来由于之前在一次处理中文乱码的经验中,在其他环境下面调试发现并无乱码,经人提醒将Web.config拷贝至新的测试环境下则发现了乱码并进行调试解决。有了该经历,我在怀疑是否因为配置文件的原因导致的。并将Web.config中的所有配置拷贝至app.config中。启动后毅然发现错误消除了,后经逐步删除各个节点启动发现在<system.net>节点中某个节点配置导致。

      配置节点如下:

    1 <system.net>
    2     <settings>
    3       <servicePointManager expect100Continue="false"/>
    4     </settings>
    5   </system.net>
    View Code

      后经继续搜索找到在发起HTTP请求时在代码前设置如下也可解决HTTP 417

    // 摘要:
    //获取或设置一个 System.Boolean 值,该值确定是否使用 100-Continue 行为。
    //
    // 返回结果:
    //若要启用 100-Continue 行为,则为 true。默认值为 true。
    System.Net.ServicePointManager.Expect100Continue = false;

     解决原理应该是设置100-Continue 行为 false,一个是通过配置文件设置,一个是通过代码实时设置,异曲同工。

  • 相关阅读:
    hdu 5833 Zhu and 772002 (高斯消元)
    1203事件对象
    作用域面试题
    1130 JS高级 面向对象
    1122JS中级复习
    1120浏览器对象模型 函数分析
    1119动画和复习
    1114面试题作用域
    1113Js操作CSS样式
    1112函数封装和元素的属性
  • 原文地址:https://www.cnblogs.com/YangChengHu/p/3529964.html
Copyright © 2011-2022 走看看