生产环境常见的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
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)