curl执行put请求返回000

curl执行put请求返回000,第1张

一、生产环境常见的HTTP CODE

生产环境常见的HTTP状态码列表(List of HTTP status codes)为:

2XX成功: 200 - OK,服务器成功返回网页 - Standard response for successful HTTP requests.

3XX重定向: 301 - Moved Permanently(永久跳转),请求的网页已永久跳转到新位置。 - This and all future requests should be directed to the given. 302 - Moved Temporarily(永久跳转),请求的网页已临时跳转到新位置。

经常会用到curl调试接口,服务器返回的是json,不过这些json是没有格式化的,不方便阅读。

经过搜索和实验,发现下面2中方式比较方便。

示例:

在curl命令后面添加 | python -m json.tool 即可。

如下所示

如果不想显示curl的统计信息,可以参考这篇 文章 ,添加 -s 参数即可。

用nvm安装一个json库,这里是库的 地址 文档。

安装 json 命令

在curl命令后面添加 | json 即可。

如下所示:

之前一直没有细心关注过curl,用的时候也是直接调取封装好的方法,

做微信公共账号和其他api接口的时候也没有遇到400 Bad Request错误

今天就奇了个怪了,一直报 400 Bad Request

网上找了以下解决方法:

1. url地址有误.

手动在地址栏里输入url看看请求是否正常.

注意: 如果url地址里面包含换行符也有可能返回400.

2. https请求需要设置对应参数

## Below two option will enable the HTTPS option.

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE)

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  FALSE)

3. url中传递的字符串需要url_encode转码

但我试了都不起作用,依旧:

郁闷中 将method改为大写,刷新后一切ok!

?

/**

*   curl请求

* @param array $data   要请求的array数组

* @param str $url      请求的地址

* @param str $method   大写 POST   GET

* @return array

*/

static public function curl($data, $url, $method = 'POST') {

$ch = curl_init()

curl_setopt($ch, CURLOPT_URL, $url)

//$method 方法

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, strtoupper($method))

//启用时会将服务器服务器返回的"Location:"放在header中递归的返回给服务器

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1)

//自动设置header中的referer信息

curl_setopt($ch, CURLOPT_AUTOREFERER, 1)

//在HTTP中的"POST"操作数据

curl_setopt($ch, CURLOPT_POSTFIELDS, $data)

// 设置超时限制防止死循环

curl_setopt($ch, CURLOPT_TIMEOUT, 10)

//在curl_exec()获取的信息以文件流的形式返回,而不是直接输出

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)

$tmpInfo = curl_exec($ch)

if (curl_errno($ch)) {

return curl_error($ch)

}

curl_close($ch)

return $tmpInfo

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/295327.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-25
下一篇2023-04-25

发表评论

登录后才能评论

评论列表(0条)

    保存