Php 狂饮;使用基本URL、标题和POST设置客户端

Php 狂饮;使用基本URL、标题和POST设置客户端,php,json,web-services,guzzle,Php,Json,Web Services,Guzzle,我在纠正语法方面遇到了困难,我将非常感谢您的帮助;我正在尝试设置包含基本URL和一些必要的头信息(包括自定义安全令牌)的客户端 下一步是发布到Web服务: $baseServiceURL = ['base_uri' => 'http://127.0.0.1:8080/service/v1/ws//something/update']; $theHeaders = ['Content-Type' => 'application/json', 'Accept' => 'appl

我在纠正语法方面遇到了困难,我将非常感谢您的帮助;我正在尝试设置包含基本URL和一些必要的头信息(包括自定义安全令牌)的客户端

下一步是发布到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必须是数组类型,给定为null,在第55行的C:\xampp\vendor\GuzzleHttp\Psr7\src\Uri.php中调用,在第410行的C:\xampp\vendor\GuzzleHttp\Psr7\src\Uri.php中定义

如果我将URL更改为string
$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行

客户端只接受构造函数中的一个参数

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

//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");

}

谢谢你的回答,你是对的。我对我的原始示例进行了一些更改,以使其正常工作。我会把它贴在下面作为答案。
//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");

}