错误请求400卷曲问题

时间:2011-06-15 18:30:41

标签: php api curl httpwebrequest bad-request

当我尝试向php中的服务器发送请求时,我似乎遇到了问题。 http api请求是这样的:

  

https://www.quickbase.com/db/basddzvkb?act=API_DoQuery&ticket=6_bsdaaap8y_by5bx6_b_crji7wwewew3b9asd5zibmf8jh3bhsdsddvhruc9csquzdg9bzw4&apptoken=cgsb5xdwehusdaaagcjs222dz9&fmt=structured&query= { '22'.ct.'test'}

我在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    [filetime] => -1    [ssl_verify_result] => 20    [redirect_count] => 0    [total_time] => 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] => Array()

另外你可以看到我注释掉了curlopt_post,因为它在我做一个不同的api请求时引起了问题。我不确定解决方案是什么,我一直在看这个问题一段时间,希望有人可以帮助我谢谢:)

1 个答案:

答案 0 :(得分:1)

Datasage帮我提出了这个答案,你基本上必须添加urlencode(“{'22'.ct.'test'}”);到这部分代码,它将产生正确的输出。