【问题标题】:header parameters post request php ( curl)标头参数发布请求php(curl)
【发布时间】:2012-08-09 12:00:40
【问题描述】:

我正在尝试构建一个 php 脚本来发布我正在使用 culr 的其他 web 服务,如您所见,问题出在 API webserver 文档中要求我发送一些标头参数,字面意思是 “对于每个 http 调用,您需要添加以下标头参数: API用户ID, API密码和 响应类型”

所以我的问题是如何将自定义参数添加到我的标头请求中?谢谢

<?php 
function curl_post($url, array $post = NULL, array $options = array()) 
{ 
$defaults = array( 
    CURLOPT_POST => 1, 
    CURLOPT_HEADER => 0, 
    CURLOPT_URL => $url, 
    CURLOPT_FRESH_CONNECT => 1, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_FORBID_REUSE => 1, 
    CURLOPT_TIMEOUT => 4, 
    CURLOPT_SSL_VERIFYHOST=>0,
    CURLOPT_POSTFIELDS => http_build_query($post) 
); 

$ch = curl_init(); 
curl_setopt_array($ch, ($options + $defaults)); 
if( ! $result = curl_exec($ch)) 
{ 
    trigger_error(curl_error($ch)); 
} 
curl_close($ch); 
return $result; 
} 

$result=curl_post('https://www.serverPath/serverAPI',array('a'=>'a','b'=>'b'));

echo $result;

?>

【问题讨论】:

  • 您可以将它们作为 POST 字段发送。
  • 是的。但在 API 的文档中,他们说添加标头参数。

标签: php http curl


【解决方案1】:

您是否尝试过将这些参数添加到 httpheader 中?

curl_setopt($tuCurl, CURLOPT_HTTPHEADER, array(
    "Content-Type: text/xml",
    "APIuserID: $id", 
    "APIpassword: $password", 
    "Content-length: ".strlen($data)
)); 

您还可以使用:http://php.net/manual/en/soapheader.soapheader.php

【讨论】:

  • 感谢您正在寻找。我不知道具体放在哪里。
  • 一件事只是为了好奇,如何在 web 服务中检索此参数 APIuserID 和 APIpassword 以防万一我必须构建一个。
猜你喜欢
  • 1970-01-01
  • 2018-04-24
  • 2015-12-06
  • 2022-11-29
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 2020-04-26
  • 2012-01-13
相关资源
最近更新 更多