咕噜咕噜;使用基本 URL、标头和 POST 设置客户端


Guzzle; setting up Client with base URL, Headers and then POST

我在更正语法时遇到问题,我将不胜感激任何帮助;我正在尝试设置包含基本 URL 和一些必要的标头信息(包括自定义安全令牌)的客户端

下一步是 POST 到 Web 服务:

$baseServiceURL = ['base_uri' => 'http://127.0.0.1:8080/service/v1/ws//something/update']; 
$theHeaders = ['Content-Type' => 'application/json', 'Accept' =>  'application/json', 'token' => 'test-token'];
$updateRequestClient = new Client($baseServiceURL, array(
    "request.options" => array(
       "headers" => $theHeaders
    )
));
//var 1 coming from elsewhere
$varNum2 = $q;
$varNum3 = $w;
$varNum4 = $e;
$varNum5 = $r;
$varNum6 = $t;
$varNum7 = 'me';
// json name/value pairs
$updateBody['name1'] = $varNum1;
$updateBody['name2'] = $varNum2;
$updateBody['name3'] = $varNum3;
$updateBody['name4'] = $varNum4;
$updateBody['name5'] = $varNum5;
$updateBody['name6'] = $varNum6;
$updateBody['name7'] = $varNum7;
//send
$updateRequestResponse = $updateRequestClient->post([ 'body' => json_encode($updateBody) ]);
//response 200??
$responseCode = $updateRequestResponse->getStatusCode();
if ($responseCode == "200") {                                                  
echo ("SUCCESS");
}

我的 HTML 端出现以下错误:

警告:parse_url() 期望参数 1 为字符串,数组在第 51 行的 C:''xampp''vendor''guzzlehttp''psr7''src''Uri.php 中给出

可捕获的致命错误:传递给 GuzzleHttp''Psr7''Uri::applyParts() 的参数 1 必须是数组类型,给定空值,在第 55 行的 C:''xampp''vendor''guzzlehttp''psr7''src''Uri.php 中调用,并在 C:''xampp''vendor''guzzlehttp''psr7''src''Uri.php 第 410 行定义

如果我将 URL 更改为字符串$baseServiceURL = (string)('http://127.0.0.1:8080/service/v1/ws//something/update');我会得到:

可捕获的致命错误:参数 1 传递给 GuzzleHttp''Client::__construct() 必须是数组、字符串的类型 给定,在 C:''xampp''htdocs''SSQueryTool''updateDoctor.php 中调用 79 并在 C:''xampp''vendor''guzzlehttp''guzzle''src''Client.php 中定义 62号线

$baseServiceURL = 'http://127.0.0.1:8080/service/v1/ws//something/update'; 
$theHeaders = ['Content-Type' => 'application/json', 'Accept' =>  'application/json', 'token' => 'test-token'];
$updateRequestClient = new Client(array(
    'base_uri' => $baseServiceURL,
    'headers' => $theHeaders
));

客户端在构造函数中仅接受 1 个参数https://github.com/guzzle/guzzle/blob/master/src/Client.php#L62

经过一

整天的工作,我终于让它工作了,请在下面找到我的详细信息:

//PREP PAYLOAD (varNum1 coming from elsewhere)
$varNum2 = $q;
$varNum3 = $w;
$varNum4 = $e;
$varNum5 = $r;
$varNum6 = $t;
$varNum7 = 'me';
//THE WEBSERVICE UPDATE BASE URL 
$baseServiceURL = (string)('http://127.0.0.1:8080/service/v1/ws//something/update'); 
$updateRequestClient = new Client(['timeout'  => 10000.0,]);
//ASSIGN json name/value pairs to body
$updateBody['name1'] = $varNum1;
$updateBody['name2'] = $varNum2;
$updateBody['name3'] = $varNum3;
$updateBody['name4'] = $varNum4;
$updateBody['name5'] = $varNum5;
$updateBody['name6'] = $varNum6;
$updateBody['name7'] = $varNum7;
//SEND AND SAVE RESULT TO updateRequestResponse //TAKE NOTE OF: JSON_FORCE_OBJECT //
$updateRequestResponse = $updateRequestClient->post($baseServiceURL, ['headers' => ['Content-Type' => 'application/json', 'Accept' => 'application/json', 'token' => 'test-token'], 'body' => json_encode($updateBody, JSON_FORCE_OBJECT) ]);
$requestResponseCode = $updateRequestResponse->getStatusCode(); // 200?? 
if ($requestResponseCode == "200") {                                                  
echo ("SUCCESS");
}