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

使用curl get 404发送post请求

章子航
2023-03-14

zendserver 2019.7 php 7.3 apache 2.4

在测试环境中,我通过curl向我的本地服务器发送JSON post请求。当CURLOPT_POSTFIELDS少于1000个字符时,它的脚本被执行,我得到的响应很好。

但是当我增加JSON数组的长度时,同样的脚本会出现404错误。

我已经改变了所有的配置,如post_max_size等,但没有任何效果。

$json_data = '{
  "Recon": [
      {
          "ItemNumber": "96",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "97",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "98",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "99",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "100",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "101",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "102",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "103",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "104",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "105",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "106",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "107",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      },
      {
          "ItemNumber": "108",
          "StorageLocation": "L1",
          "Quantity": "2060.800",
          "UOM": "KG"
      }
  ]

}';

$ URL = ' http://IP address/project name/recon . PHP ';

$ch=curl_init($url);curl_setopt($ch,CURLOPT_HTTPAUTH,CURLUTH_BASIC);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);

curl_setopt($ch,CURLOPT_POST,1);

curl_setopt($ch,CURLOPT_POSTFIELDS,$json_data);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);

curl_setopt($ch,CURLOPT_HTTPHEADER,数组(“内容类型:应用程序/json”);(

$result=curl_exec($ch);

curl_close($ch);

回显$结果;

共有1个答案

班承恩
2023-03-14

curl_setopt($ch、CURLOPT_POSTFIELDS$json数据);您尝试发送字符串。

PHP手册说:

CURLOPT_POSTFIELDS
要在HTTP“POST”操作中发布的完整数据。此参数可以作为urlencoded字符串传递,如“para1=val1

试试这个,你的字符串作为数组与键命名为 myjson:

curl_setopt($ch,CURLOPT_POSTFIELDS,['myjson'=

 类似资料:
  • 请求方式: "|3|2|url,content|\r" 参数: url 设置Post请求的url链接 content post请求的数据 返回值: "|3|code|data|\r" 参数: code http请求返回的成功或者错误码 成功:code = 200 获取数据失败:code = -1 http请求字段错误:code = 1 data http请求返回的数据 Arduino样例: sof

  • 问题内容: 我不想使用文件,但是只有django才需要发出POST请求。 就像发送请求一样。 问题答案: 结合使用urllib2和urllib中的方法即可解决问题。这是我使用这两种方法发布数据的方式: 是用于打开URL的方法。 将参数转换为百分比编码的字符串。

  • 我正试图根据以下代码发出post请求: 在Postman,此请求工作正常,不需要身份验证,无需登录名、密码或令牌即可工作。但是,上面的代码不起作用。 日志控制台的一部分如下: 我无法粘贴整个stacktrace,因为stackoverflow平台不允许。

  • 我正在使用截击与API交互。我需要向返回JSON数组的服务发送post请求(带参数)。 JsonObjectRequest有一个构造函数,它接受一个方法和一组参数 但是JSONArrayRequest(我需要的一个)只有一个构造函数的形式 我如何才能使其发送包含数据的POST请求?

  • 这是我的控制器: 这是我的配置: 这是类别类: 如果我尝试发送内容类型为application/json和以下正文的post请求: {“id”:8,“title”:“Паа”、“engTitle”:“Pizza”、“description”:null,“menuItems”:[{“id”:4,“title”:“Паааааааааааа”和“engTitle”:“Pepperoni”、“price

  • 问题内容: 让我们假设这个网址… (此处的ID需要在POST请求中发送) 我想将其发送到服务器的,该服务器在POST方法中接受它。 如何在Java中执行此操作? 我尝试了这个: 但是我仍然不知道如何通过POST发送 问题答案: 由于原始答案中的某些类已在Apache HTTP Components的较新版本中弃用,因此,我将发布此更新。 顺便说一句,你可以在此处访问完整的文档以获取更多示例。