问题描述
|
当我试图向php中的服务器发送请求时,我似乎遇到了问题。 http api请求是这样的:
https://www.quickbase.com/db/basddzvkb?act = API_DoQuery&ticket = 6_bsdaaap8y_by5bx6_b_crji7wweweww3b9asd5zibmf8jh3bhsdsddvhruc9csquzdg9bzw4&apptoken = cjssd5 = a2&a's \ a \'s \'s \'结构'。
我在PHP中的代码中有以下部分,我认为该错误正在发生:
else
{
$ch = curl_init($input);
curl_setopt ($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt ($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//curl_setopt($ch,CURLOPT_POST,true);
$this->input = $input;
}
$r = curl_exec($ch);
print_r(curl_getinfo($ch));
if($return_xml) {
$response = new SimpleXMLElement($r);
}
这是我从print_r(curl_getinfo($ ch))语句中得到的:
[content_type] => text / html
[http_code] => 400
[header_size] => 129
[request_size] => 251
[文件时间] => -1
[ssl_verify_result] => 20
[redirect_count] => 0
[总时间] => 0.281
[namelookup_time] => 0
[connect_time] => 0.063
[pretransfer_time] => 0.188
[size_upload] => 0
[size_download] => 20
[speed_download] => 71
[speed_upload] => 0
[download_content_length] => 20
[upload_content_length] => 0
[starttransfer_time] => 0.281
[redirect_time] => 0
[certinfo] =>数组()
还可以看到我注释掉了curlopt_post,这是因为当我执行其他api请求时它引起了问题。我不确定解决方案是什么,我一直在研究这个问题已有一段时间,希望有人可以帮助我,谢谢:)
解决方法
Datasage帮助我提出了这个答案,基本上您必须添加urlencode(\“ {\'22 \'。ct。\'test \'} \”);到这部分代码,它将产生正确的输出。