当前位置: 首页 > 知识库问答 >
问题:

PHP cURL内容类型未设置

殷烨
2023-03-14

我正在全互联网上尝试所有解决方案,但我无法获得它。

我试图连接使用php curl到一个外部API发送json数据,但我不能设置content_type。

$url = "https://example.com:xxxx/api/example";

$data = array(
    'example' => '1',
    'example2' => '2'
);
$jsonData = json_encode($data);

$ch = curl_init($url);

if(extension_loaded('curl') == true){
    echo('Curl is active<br/>');
} else {
    echo('Curl is NOT active<br/>');
}

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type:application/json',
    'Connection: Keep-Alive'
));
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 300); //timeout in seconds
$result = curl_exec($ch);


echo('<hr/>');
var_dump(curl_getinfo($ch));
echo('<br/>');
echo curl_errno($ch) . '<br/>';
echo curl_error($ch) . '<br/>';
echo('<hr/>');


curl_close($ch);

echo('<br/>Response: ');
var_dump($result);

答复:

旋度是活动的

数组(26){["url"]=

7.

无法连接到https://example.com端口xxx:连接被拒绝

答复:bool(假)

...

如果我尝试通过SoapUi:

HTTP/1.1 200 Vary:Origin Vary:访问-控制-请求-方法Vary:访问-控制-请求-报头Vary:Origin Vary:访问-控制-请求-方法Vary:访问-控制-请求-报头X-内容-类型-选项:nosnff X-XSS-保护:1;模式=块缓存-控制:无缓存,无存储,最大年龄=0,必须重新验证Pragma:无缓存过期: 0严格传输安全:最大年龄=31536000;包括子域X帧选项: DENY内容类型:文本/平原;字符集=UTF-8内容长度: 42日期:周四,11六月2020 09:29:46格林尼治标准时间保持活力:超时=60连接:保持活力

正确回答

但是我需要在PHP上做。有什么帮助吗?

共有1个答案

钱星辰
2023-03-14

这是关于https,现在我得到:

Response: string(34) "xxxxxxxxxxxxxxxxx"

谢谢@ADyson

 类似资料:
  • null 当我创建正文部分时,我是否应该显式地设置top mime消息的内容类型,然后设置每个正文部分? 如果是,在上面的例子中它们应该是什么? 对于html建议,对于附件建议,对于内联建议。我正在使用所有这些,那么对于完整的消息和不同的主体部分应该是什么内容类型? 通过上面的代码,我得到了正确的html文本,纯文本,内联图像和附件在正确的地方与James集成的ThunderBird。 因此,我不

  • 问题内容: 我有一个映射有以下注释的控制器: 我返回了一个有效的JSON字符串,但是,当我在浏览器中的Chrome Dev Tools上查看响应时,内容类型不是唯一的。为什么未设置内容类型? 我的: 我的: 使用WildFly 8.1作为我的应用服务器。 问题答案: 要了解的第一件事是,在元素 仅用于限制请求处理程序的映射。 它什么也没做。 然后,假设您的方法的返回类型为,并带有注释,则将通过处理

  • 我在请求处理程序周围编写了一种包装器,使它们流式传输HTTP响应。我现在得到的是 处理程序响应包装器: 控制器: 我所做的只是每隔半秒发送一个空字符串,以保持请求的活动状态。某些工具需要在超时时不关闭它。这里的问题是,我在响应中没有看到任何内容类型头。尽管我从我的控制器方法返回ResponseEntity,但什么都没有,正如这条线程中所说: https://github.com/spring-pr

  • 问题内容: 我正在使用Flask,并且从get请求返回一个XML文件。如何将内容类型设置为xml? 例如 问题答案: 尝试这样: 实际的Content-Type基于mimetype参数和字符集(默认为UTF-8)。

  • 我试图设置请求的内容类型标题,但是okhttp会自动将内容类型添加到标题列表的末尾,并将其设置为application/json;charset=UTF-8,尽管我只是将其设置为application/json。 还有其他人经历过吗?如果是的话,我可以提出请求。 我发现okhttp没有通过fiddler正确发送此标头。

  • 我无法在HttpClient上设置内容类型。我接着问了一个问题:如何为HttpClient请求设置Content-Type头?但还是没有运气。 所以我怎么能强迫它,这样它就真的添加了它呢?提前道谢。