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

发送POST CURL时出现PHP XML错误415

臧翰采
2023-03-14

我使用PHP CURL发送POSTFIELD,但我得到错误415不支持的媒体类型这是我的代码:

$data = '<?xml version="1.0" encoding="euc-kr" ?>
    <Product>
        <selMnbdNckNm>Catenzo YI 099</selMnbdNckNm>
        <selMthdCd>01</selMthdCd>
        <dispCtgrNo></dispCtgrNo>
        <prdAttrCd></prdAttrCd>
        <dispCtgrNo></dispCtgrNo>
        <prdAttrVal><prdAttrVal>
        <prdNm></prdNm>
        <prdStatCd></prdStatCd>
        <prdWght></prdWght>
        <dlvGrntYn></dlvGrntYn>
        <minorSelCnYn></minorSelCnYn>
        <suplDtyfrPrdClfCd></suplDtyfrPrdClfCd>
        <prdImage01></prdImage01>
        <prdImage02></prdImage02>
        <prdImage03></prdImage03>
        <prdImage04></prdImage04>
        <prdImage05></prdImage05>
        <htmlDetail></htmlDetail>
        <selTermUseYn></selTermUseYn>
        <selPrc></selPrc>
        <prdSelQty></prdSelQty>
        <asDetail></asDetail>
        <rtngExchDetail></rtngExchDetail>
    </Product>';
    $data = simplexml_load_string($data);

    $ch = curl_init();
    $header = array(
        "Content-Type: application/xml",
        "Accept-Charset: utf-8",
        "openapikey:myapikey",
        'Content-Length: ' . strlen($data)
    );
    curl_setopt($ch, CURLOPT_URL, "http://dev.api.elevenia.co.id/rest/prodservices/product");
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
    //curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $return=curl_exec($ch);
    echo "[MSG] Result -Xml : \n";
    echo $return;

我收到错误信息

HTTP/1.1 415不支持的媒体类型日期:周三,01月2018 18:19:00格林尼治标准时间服务器:Apache缓存控制:无缓存缓存控制:无存储Pragma:无缓存内容长度: 903过期:周四,01月1970 00:00:00格林尼治标准时间设置-Cookie: WMONID=RgWtbnOnqnT;到期=周四,03-Jan-2019 18:19:00GMT; path=/X-Powerd-By: Servlet/2.5 JSP/2.1 Vary: User-Agent Content-Type: text/html; charset=UTF-8

我希望有人能帮助我。

共有1个答案

左丘季
2023-03-14

感谢@astrangeloop和@frz3993,我只是在将$header更改为$headers时出现了一个小错误,xml结束标记应该是

 类似资料:
  • 问题内容: 我正在尝试将JSON发送到elasticSearch。我尝试使用Postman和SOAPUI数据是 我回来了以下错误 但是当我发布单个JSON数组即 然后工作正常。我是ElasticSearch的新手,所以不确定出什么问题。 问题答案: 首先尝试使用大括号,然后为数组命名。尝试一下,看看是否可行。 例如: 可能有效,因为它包含在对象内部。 更好 在尝试时,我发现它可以将数组隐式转换为J

  • 我在使用discord机器人添加此发送消息时遇到了一个奇怪的错误。我在学习Scratch教程 结果:- `(节点:8480)未经处理的PromisejectionWarning:DiscordAPIError:在C:\Users\Deepanshu\node\u modules\discord处缺少访问权限。js\src\client\rest\RequestHandlers\Sequential

  • 我试图使用selenium登录网站,但在向网站发送用户名和密码时出错: 代码: Chromedriver=2.43.600229 如何解决这个问题?

  • 我想向soap请求发送XML,我使用python请求,如下所示: 当我发送请求时,我会发出以下请求: 我在这样的请求中进行: 我给出了一些错误,比如你不能发送这样的请求。 我意识到我必须发送带有此请求的证书才能获得成功响应 我有<代码>。cer和。crt文件发送,但我这样发送: 并得到以下错误: 更新: 我在PK中使用openssl x509-inform der。cer-输出PK。pem并尝试以

  • 问题内容: 我正在尝试使用Gmail API和以下功能发送各种大小的电子邮件。 通常,这可以正常工作,但是对于超过10MB的附件(这种情况很少见,但会发生),我 认为这 是因为在发送包含大型附件的邮件时超时。 是否有办法解决这个问题,例如指定大小或增加超时限制?Gmail API文档中提到了尺寸,但我一直在努力了解如何在Python中使用尺寸,甚至是否有帮助。 问题答案: 您需要对大文件使用MED

  • 我正在尝试将post请求从Angular前端发送到ASP.NET后端。 Get请求工作正常。 当我发送: this.http.post(“http://localhost:3000/api/cards”,“some data”,httpOptions).subscribe(res=>this.display(res)); 对于我正在从VS2017运行的ASP.NET API,我得到: 错误{…}错