0

通过 url 获取 json 数据时出现问题。

网址是http://farmapi.fastway.org/v3/psc/lookup/MEL/Point%20cook/3030?LengthInCm=30&WidthInCm=30&HeightInCm=30&WeightInKg=4&api_key=MY_API_KEY

我尝试使用 urlencode 对 Point Cook 进行编码。但它不工作。但是,当您直接将其粘贴到浏览器时,此 url 可以工作。

我用来发送网址的代码是:

$curl = curl_init( $url );
curl_setopt($curl, CURLOPT_USERAGENT, 'PHP/' . phpversion());
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HEADER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
$response = curl_exec( $curl );
echo '<pre>post_request response' . print_r( $response, true) . '</pre>';
if (curl_errno( $curl )) {
    $this->response = curl_error( $curl );
    return $this->response;
    curl_close( $curl );
}

curl_close( $curl );

或这个:

$response = wp_remote_post( $url, array(
    'method'    => 'POST',
    'timeout'   => 70,
    'sslverify' => 0
    ) );

有谁可以帮助我解决这个问题或给我一些可能的解决方案?我会很感激的。

4

1 回答 1

0

感谢您的 hakre 和 Colin Morelli。从你们提供的答案中,我发现代码中的真正问题。

首先是使用rawurlencode. 这个函数变成point cookpoint%20cook这是正确的格式。urlencode功能变成point cookpoint+cook服务器端是不可接受的。

Colin Morelli 提到的第二个问题是我使用了担心方法来发送 url。我应该使用 GET 而不是 POST。

多谢你们!!!

于 2013-03-16T12:45:45.420 回答