簡體   English   中英

發送HTTP發布請求PHP

[英]Send HTTP Post Request PHP

我嘗試使用Steam API取消交易報價。 請遵循以下步驟: https : //developer.valvesoftware.com/wiki/Steam_Web_API/IEconService#CancelTradeOffer_.28v1.29

我需要通過HTTP Post請求傳遞tradeofferid。 我做到了,但權衡並沒有取消:

    function RechazarOferta($tradeid)
{
    $data = array('tradeofferid' => $tradeid);
    $trade = array('tradeofferid' => $tradeid, 'language' => 'english');

    $url = 'https://api.steampowered.com/IEconService/CancelTradeOffer/v1/?key=C9786993763535D16XXXXXXXXX&'.http_build_query($trade);

    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, $url);
    curl_setopt($c, CURLOPT_POST, 1);
    curl_setopt($c, CURLOPT_POSTFIELDS, $data);
    $return = curl_exec($c);
    curl_close($c);

    var_dump($return);
}

有什么解決方案或更好的形式可以發出HTTP Post請求?

卷毛非常丑陋且老舊。 一口

$client = new GuzzleHttp\Client();
$res = $client->request('GET', 
   'https://api.steampowered.com/IEconService/CancelTradeOffer/v1', 
   ['query' => [
       'key' =>'C9786993763535D16XXXXXXXXX',
       'tradeofferid' => $tradeid, 
       'language' => 'english']
   ]
);
echo $res->getStatusCode();
// "200"

我使用此方法進行此操作,請測試:

$url = 'https://yourweb.com';
$body = 'var1=1&var2=2';

$result = get_data($url, $body);

function get_data($url, $body)
{
    //$userAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)';
    $ch      = curl_init();
    $timeout = 7;

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    //curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    //curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

暫無
暫無

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

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