• HTTP Error: 413 Request Entity Too Large的解决


    昨天在使用PHP的CURL调用另一个项目的API:A时,出现了HTTP Error: 413 Request Entity Too Large的错误。而调用另一个API:B则没有这个错误。
    A的API没有请求参数。而B有个请求参数。而此类在linux上没有问题,在window上有问题。

    首先考虑是否apache配置问题。检查了httpd.conf和php.int,,post_max_size,memory_limit,upload_file_size等,都不可能超过这些上限值。
    之后再httpd.conf文件加上

    LimitRequestBody 0
    LimitRequestLine 0
    LimitRequestFieldSize 0
    LimitxmlRequestBody 0
    ErrorDocument 413 "Sorry,Error Page"

    也都无法解决问题。

    然后就检查代码,看看两个API的调用有什么区别。区别有2点,返回数据产度不同。有无请求参数。
    而提示是显示request entity too large,应该和返回无关。那我就手动修改了请求头的Content-Length:0。第一个无参数的返回正确了。而第二个由于请求头的长度和实际长度不一致(等于没请求参数),导致请求失败。

    因此,确定是Content-Length的问题。通过strlen(data);确定后设置Content-Length后,解决此问题。

    今天又出现了个错误:
    Request-URI too large
    The requested URL's length exceeds the capacity limit for the server
    因为之前在httpd.conf中设置了LimitRequestLine 0
    我以为0是不限制的意思。看来理解错了。删掉改行或者设置为LimitRequestLine 1000000000就OK了。

  • 相关阅读:
    451. Sort Characters By Frequency
    424. Longest Repeating Character Replacement
    68. Text Justification
    44. Wildcard Matching
    160. Intersection of Two Linked Lists
    24. Swap Nodes in Pairs
    93. 递归实现组合型枚举
    98. 分形之城
    97. 约数之和
    96. 奇怪的汉诺塔
  • 原文地址:https://www.cnblogs.com/caicaizi/p/6737535.html
Copyright © 2020-2023  润新知