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

Php新的HttpRequest元素

程彭祖
2023-03-14

我可以用HttpRequest()试试联邦快递代码;但我不能说这不管用。我研究了这些方法并进行了研究。我在这件事上没有经验。我在网上找不到必要的信息。联邦快递链接:https://developer.fedex.com/api/en-us/catalog/ship/v1/docs.html#operation/Create运输

此代码:

<?php

$request = new HttpRequest();
$request->setUrl('https://apis-sandbox.fedex.com/ship/v1/shipments');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
  'Authorization' => 'Bearer ',
  'X-locale' => 'en_US',
  'Content-Type' => 'application/json'
));

$request->setBody(input); // 'input' refers to JSON Payload

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

?>

共有1个答案

唐珂
2023-03-14

邮递员示例(方法curl):

错误代码:"code":"BAD. REQUEST. ERROR","消息":"给定的JWT无效。请修改您的请求,然后重试。"

curl --location --request POST 'https://apis-sandbox.fedex.com/ship/v1/shipments' \
--header 'x-customer-transaction-id: 624deea6-b709-470c-8c39-4b5511281492' \
--header 'x-locale: en_US' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer XXX' \
--data-raw '{
  "labelResponseOptions": "URL_ONLY",
  "requestedShipment": {
    "shipper": {
      "contact": {
        "personName": "SHIPPER NAME",
        "phoneNumber": 1234567890,
        "companyName": "Shipper Company Name"
      },
      "address": {
        "streetLines": [
          "SHIPPER STREET LINE 1"
        ],
        "city": "Memphis",
        "stateOrProvinceCode": "TN",
        "postalCode": 38116,
        "countryCode": "US"
      }
    },
    "recipients": [
      {
        "contact": {
          "personName": "RECIPIENT NAME",
          "phoneNumber": 1234567890,
          "companyName": "Recipient Company Name"
        },
        "address": {
          "streetLines": [
            "RECIPIENT STREET LINE 1",
            "RECIPIENT STREET LINE 2",
            "RECIPIENT STREET LINE 3"
          ],
          "city": "RICHMOND",
          "stateOrProvinceCode": "BC",
          "postalCode": "V7C4V7",
          "countryCode": "CA"
        }
      }
    ],
    "shipDatestamp": "2020-07-03",
    "serviceType": "INTERNATIONAL_PRIORITY",
    "packagingType": "YOUR_PACKAGING",
    "pickupType": "USE_SCHEDULED_PICKUP",
    "blockInsightVisibility": false,
    "shippingChargesPayment": {
      "paymentType": "SENDER"
    },
    "labelSpecification": {
      "imageType": "PDF",
      "labelStockType": "PAPER_85X11_TOP_HALF_LABEL"
    },
    "customsClearanceDetail": {
      "dutiesPayment": {
        "paymentType": "SENDER"
      },
      "isDocumentOnly": false,
      "commodities": [
        {
          "description": "Commodity description",
          "countryOfManufacture": "US",
          "quantity": 3,
          "quantityUnits": "PCS",
          "unitPrice": {
            "amount": 100,
            "currency": "USD"
          },
          "customsValue": {
            "amount": 300,
            "currency": "USD"
          },
          "weight": {
            "units": "LB",
            "value": 20
          }
        }
      ]
    },
    "shippingDocumentSpecification": {
      "shippingDocumentTypes": [
        "COMMERCIAL_INVOICE"
      ],
      "commercialInvoiceDetail": {
        "documentFormat": {
          "docType": "PDF",
          "stockType": "PAPER_LETTER"
        }
      }
    },
    "requestedPackageLineItems": [
      {
        "groupPackageCount": 1,
        "weight": {
          "value": 10,
          "units": "LB"
        },
        "declaredValue": {
          "amount": 100,
          "currency": "USD"
        }
      },
      {
        "groupPackageCount": 2,
        "weight": {
          "value": 5,
          "units": "LB"
        },
        "declaredValue": {
          "amount": 100,
          "currency": "USD"
        }
      }
    ]
  },
  "accountNumber": {
    "value": ""
  }
}'
 类似资料:
  • 当使用Akka HttpRequest将请求发送给一个actor时,我无法识别响应。actor将处理收到的每条消息,但它不知道哪个请求用于获得该响应。有什么方法可以识别每个请求并匹配响应呢? 注意:我没有服务器来再次发送请求体的任何部分。 预先感谢

  • 假设我想在Scala中测试HTTP响应,以确保我的web应用程序根据需要返回它们。 例如,一个响应需要具有“状态代码”= Ok,“content-type: application/json”和“content-length”标头以及有效的JSON正文,另一个响应需要具有“状态代码”=错误请求和错误消息等。 假设我已经定义了几个函数来测试状态,标头和正文 现在我需要组合它们来定义一个函数来测试响应

  • 问题内容: 我试图向WCF服务(我拥有)发出跨域HTTP请求。我已经阅读了几种处理跨域脚本限制的技术。因为我的服务必须同时容纳GET和POST请求,所以我无法实现某些动态脚本标签,其src是GET请求的URL。由于我可以自由地在服务器上进行更改,因此我开始尝试实现一种变通方法,该变通方法包括配置服务器响应以包括“Access-Control-Allow-Origin”标头以及带有和OPTIONS请

  • 问题内容: 我有一个拦截器,我想在其中基于控制器方法(而不是在控制器类上)的注释做一些拦截逻辑。假设只想限制某些用户对该控制器方法的访问。有什么方法可以在HandlerInterceptor中获取Handler方法(不是处理程序类)吗? 问题答案: 恐怕不是。您必须将所需的方法分组在一个(或几个)类中,然后根据该类而不是方法进行检查。 我猜您可以自己解析注释并匹配路径,或者尝试查看spring在其

  • 前面小节在分析 handler 时提到,handler 的读写实际是依靠 httprequest 来完成的。今天就分析 tornado 在 HTTP 这一层上的实现,类包括 HTTPRequest, HTTPServer 和 HTTPConnection. 首先,HTTP 协议是建立在面向连接的可靠连接协议 TCP 协议之上,是应用层协议,亦即它的协议内容会涉及网络业务逻辑,而与网络连接处理等底层

  • 本文向大家介绍Django的HttpRequest和HttpResponse对象详解,包括了Django的HttpRequest和HttpResponse对象详解的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Django的HttpRequest和HttpResponse对象的相关内容,具体如下。 请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对