簡體   English   中英

cURL - 使用 PHP 發送 GET 請求

[英]cURL - sending GET request using PHP

我不明白我哪里做錯了。

下面是我的代碼:

$message = "testing from the application.";
$mobile_number = ""; //hidden for security
$sender = ""; //hidden for security    
$ch = curl_init(""); //hidden for security, http://ip
curl_setopt($ch, CURLOPT_URL, "api.php?username=&password=&number=$mobile_number&sender=$sender&type=0&message=$message");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
echo $output = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

curl_getinfo返回 0, $output返回任何內容,但文檔說如果請求成功,則$output為 1101。

我在郵遞員那里測試過,結果還可以。

根據您的最終評論,由於問題是由於未對 URL 參數進行 url 編碼造成的,因此我認為最簡單的方法是這樣的:

$params = array(
    'message'  => "testing from the application.",
    'number'   => "", //hidden
    'sender'   => "", //hidden
    'username' => $username,
    'password' => $password,
    'type'     => 0,
);

$url = 'api.php?'. http_build_query($params);

curl_setopt($ch, CURLOPT_URL, $url);

有關更多信息,請參閱http_build_query() 它將安全地將數組編碼為適合 URL 編碼的 HTTP POST 請求或查詢字符串參數的字符串。

cURL請求失敗時,查看curl_getinfo()返回的所有內容也很有幫助。

在這種情況下,我會認為HTTP代碼是400 ,對於錯誤的請求。 你也叫 do echo curl_error($ch); 用於人類可讀的錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM