最近做了一个服务器监控,需要通过curl发出大量的http请求,这里列举了一下curl返回的常见错误码,方便下次排查问题:
错误信息 | 含义 | 解决方案 |
Illegal characters found in URL | URL中包含"\r",“\n"特殊字符 |
过滤这些特殊字符
if (strpbrk(data->change.url, "\r\n")) {
failf(data, "Illegal characters found in URL");
return CURLE_URL_MALFORMAT;
}
|
Connection time-out | 连服务器超时 | 检查服务器之间网络通信是否正常 |
name lookup timed out | DNS服务器连接超时 | 检查DNS服务器之间网络通信是否正常 |
Operation timed out after 10000 milliseconds with 0 bytes received | 已经连接上服务器,但在s秒内未接收完所有数据 | 检查服务器之间网络通信是否正常 |
Couldn't resolve host 's1693.wukong.37.com' | 请求域名没有解析 | 确认域名是否解析并生效,如果域名已经生效,则检查DNS服务器 |
其他TIPS:
- 最好设置CURLOPT_USERAGENT,让服务器看起来你像是一个浏览器用户访问。如果服务器或程序设置了user-agent限制,有可能导致请求失败。
这里列举出了一个user-agent,看起来是google浏览器访问:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36