私の会社のディストリビューターから注文を取り出すためのAPIクライアントを作成しました。 PUTで注文をダウンロードしたことを確認する必要があります。 PUTは正常に動作していますが、私の承認の確認でエラーが発生します。 Postmanを使用して、私はJSON本体メッセージを返します。GuzzleHttp - JSONエンコードされたボディを取得
私は戻って確認を置いたとき、私は次のエラーを取得する:
Type error: Argument 1 passed to GuzzleHttp\Client::send() must
implement interface Psr\Http\Message\RequestInterface, instance of
GuzzleHttp\Psr7\Response given, called in
/var/www/orders/app/Http/Controllers/edi/OrderController.php on line 86
これはライン86である:
$response = $client->send($apirequest);
関連するコード:
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client as GuzzleHttpClient;
use GuzzleHttp\Psr7\Stream;
use Illuminate\Support\Facades\Input;
use Response;
use XmlParser;
use Psr\Http\Message\RequestInterface;
public function orderConfirm()
{
$uri = config('services.orders.orderack');
$formdata = Input::all();
$orders = Input::get('orders');
try {
$client = new GuzzleHttpClient([
'headers'=> [
'Authorization' => '$user',
'ContractID' => '$contract',
'Content-Type' => 'application/json']
]);
$apirequest = $client->request('PUT', $uri,
['body' => json_encode(
[
$orders
]
)]
);
$response = $client->send($apirequest);
$contents = (string) $response->getBody();
return $contents;
}
catch (RequestException $ex) {
//Exception Handling
echo $ex;
}
出力ポストマンから:
"Number of Orders Acknowledged: 1"
SO上の他の記事から、この:
$contents = (string) $response->getBody();
は、本体と他の人々が彼らの問題を修正し、それは私のために働いていない取得する方法です。
明らかに私はまだここに何かが不足しています!
優秀!どうもありがとうございました。私は送信を削除し、今は期待どおりに動作しています。 – unisolv
それを聞いてうれしい! –