使用 PHP 发送 POST 请求

Send POST request with PHP

对于我想使用的翻译工具,我需要根据 POST 发送我的请求。 我从来没有做过这样的事情,文档对我来说意义不大(它不是 php 特定的文档,并且不确定如何在 php 中实现它)

文档中的示例是:

POST /v2/translate HTTP/1.0
Host: api.deepl.com
Accept: */*
User-Agent: YourApp
Content-Type: application/x-www-form-urlencoded
Content-Length: 91

auth_key=MYKEY&text=this%20is%20a%20test&target_lang=de

在 Whosebug 的另一个 post 中,我发现这个解决方案在 php 中使用 POST, 所以我的主要问题是,我不确定一切都去哪里了 我假设 Host 进入 url 并且 header 是正确的。但这就是我有限技能所能达到的程度

$url = 'http://server.com/path';
$data = array('key1' => 'value1', 'key2' => 'value2');

// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data)
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }

var_dump($result);

任何帮助将不胜感激

您可以在 PHP 中使用 curl 执行 POST 请求。

// initiate the curl request
$request = curl_init();

curl_setopt($request, CURLOPT_URL,"http://www.otherDomain.com/getdata");
curl_setopt($request, CURLOPT_POST, 1);
curl_setopt($request, CURLOPT_POSTFIELDS,
        "var1=value1&var2=value2");

// catch the response
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($request);

curl_close ($request);

// do processing for the $response