麻烦php cURL库和REST POST请求

在我发布的API发布其API的最终版本后,我遇到了REST POST请求的问题。 它没有发生任何事情,我被告知,在新版本中,服务器对于'application / json'类型更加严格。 以下cli curl命令适用于:

cat json.txt|curl -v -k -u user:password -F 'exchangeInstance=@-;type=application/json'  https://my.url.here

但是,我需要在代码中执行此操作。 使用php curl库,我得到了一个简单的测试脚本,如下所示:

  $post = array(
    "exchangeInstance" => $json_string,
    "type" => "application/json",
  );
  $url = 'myurlhere';

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  curl_setopt($ch, CURLOPT_USERPWD, "user:pass");
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

  $result = curl_exec($ch);
  $info = curl_getinfo($ch);

  var_dump($post);
  var_dump($result);
  echo $result;
  var_dump($info);

在我阅读文档时,如果我将一个数组作为CURLOPT_POSTFIELDS传递,那么头文件中的Content-type应该自动设置为'multipart / form',然后我将元素传递的类型设置为'application / json'阵列。

但是,api没有收到我的POST请求。 而且我收到的错误清楚地表明他们正在收到GET请求。 这怎么可能? 我错过了什么?


卷曲-F !== -d

$post = array(
    "exchangeInstance" => sprintf('@%s;type=application/json', $json_string),   
);
链接地址: http://www.djcxy.com/p/8619.html

上一篇: Trouble with php cURL library and REST POST request

下一篇: cURL POST command line on WINDOWS RESTful service