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

PHP Curl请求在Postman环境之外不起作用-formdata包含数组

杨俊茂
2023-03-14

使用以下代码:

   $curl = curl_init();

我得到响应{“registration\u attributes”:[“Missing”]}此代码将在Postman中工作,但不会在生产服务器上工作。创建registration\u attributes数组的方式是否有问题?

共有1个答案

丌官哲彦
2023-03-14

您的CURLOPT\u POSTFIELDS字符串看起来不完整,被截断了,但无论如何,在PHP中执行多部分/表单数据请求是一种糟糕的方式,只让PHP/libcurl为您创建多部分/表单数据请求要容易得多。在你的情况下,威奇看起来像

curl_setopt ( $ch, CURLOPT_POSTFIELDS, array (
        "active_registration_id" => 123,
        "language_id" => 79,
        "archived" => "{{archived}}",
        "enabled" => "{{enabled}}",
        "password" => "SamplePassword",
        "password_confirmation" => "SamplePassword",
        "registration_attributes" => array (
                "first_name" => "Justin",
                "last_name" => "Trudeau",
                "email" => "email@sample.com",
                "telephone_1" => "555-555-5555",
                "date_of_birth" => "1943-10-10",
                "gender" => "male",
                "referral_code" => "Ample Clinic 123",
                "Status" => "Registration Pending" 
        ),
        "For Additional Permitted Parameters:" => "See Registration Parameters", 
        // ...
) );

出于不同的原因,请删除这两个标题:“内容类型:应用程序/x-www-form-urlencoded”-此标题是假的,它不是x-www-form-urlencoded格式,而是完全不兼容的“多部分/表单数据”格式“内容类型:多部分/表单数据;边界=---WebKitFormBoundary7MA4YWxkTrZu0gW”-curl将自动设置此标头,并且使用不同的(随机生成的)边界,如果手动设置边界,服务器将无法对其进行解析。(因为标题中指定的边界将是错误的)

 类似资料:
  • 这是我得到的错误: 通用域名格式。谷歌。格森。JsonSyntaxException:java。lang.IllegalStateException:应为BEGIN_对象,但在第1行第1列路径处为字符串$ 我从邮递员那里得到的JSON回复: 这就是我如何响应rest API(使用slim2框架)的响应: 回声响应方法: 调用API的方法: APIServie界面: 我如何获得实例: 我发布所有这些

  • 我正在尝试为java设置一个PATH环境变量。当我按照下面的方式设置变量值时,在cmd中输入“java”时,它可以很好地工作 但是对于下面的错误,“java”不被识别为内部或外部命令, 我用的是windows 8。你知道为什么上面的变量不起作用吗?

  • 问题内容: 此功能似乎无法正常工作。当我调用该函数时,我正在使用: 当我从中删除时,它至少会运行,但不会上传照片。我该如何解决这个问题? 问题答案: IE10中的XHR不支持FormData。您可以安装Windows 8客户预览版进行尝试。

  • 向带有某些头的endpoint发出邮递员请求 当我运行下面的代码时 它返回了我所期望的一切,如下所示 问题只出在Axios请求上,而不是其他任何事情。这里面出了什么问题?

  • 我已经覆盖了和所以我不太确定出了什么问题。它们是使用 Eclipse 生成的(来源 -

  • 我有一个两个Spring Boot应用程序。一个是进行rest调用的rest客户端。另一个只有Restendpoint的应用程序。 当rest客户机到达Restendpoint时,它会失败。 这是用于命中restendpoint的代码: 这是客户端尝试访问的其余endpoint: 这是我在带有restendpoint的应用程序中看到的错误: 为什么 Rest 调用适用于邮递员而不是我的 rest