Я хочу отправить HTTP-файл и тело запроса с использованием жрет, но API, не отвечающий, получает ошибку неверного запроса
У меня была ошибка в ответе, два, ответ для ответа 400 статуса getReasonPhrase () я получаю неверный запрос
<?php
require_once "vendor/autoload.php";
use GuzzleHttp\Client;
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Psr7\Request;
$file="yeni.zip";
$hash=md5_file($file);
$binary=file_get_contents($file);
$soapbody='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:get="http://fitcons.com/earchive/invoice">
<soapenv:Header/>
<soapenv:Body>
<get:sendInvoiceRequestType>
<senderID>6310700163</senderID>
<receiverID>53077224954</receiverID>
<docType>XML</docType>
<fileName>newarsiv.xml</fileName>
<hash>'.$hash.'</hash>
<binaryData>'.$binary.'</binaryData>
</get:sendInvoiceRequestType>
</soapenv:Body>
</soapenv:Envelope>';
$client=new Client();
$url="https://earsivwstest.fitbulut.com/ClientEArsivServicesPort.svc";
$options=[
'auth' => ['blabla', 'blabla'],
'headers' => ['Content-Type' => 'text/xml','cache-control'=>'no-control'],
'SOAPAction'=>'sendInvoice',
'body' => $soapbody,
'http_errors'=>false,
'multipart' => [
[
'name' =>"yeni.zip",
'Filename' => "yeni.zip",
'contents' => fopen($file, 'r'),
'headers' => [
'Content-Type' => 'application/zip',
'Content-Disposition' => 'form-data; name="yeni.zip"; filename="yeni.zip"'
]
]
]
];
$response = $client->request('POST', $url,$options);
echo $response->getReasonPhrase()."\n".$response->getStatusCode();
var_dump($response->getBody()->getContents());
результат
, внутренняя ошибка сервера 500string (698) "a: ActionNotSupported. Сообщение с действием '' не может быть обработано в получателе из-занесоответствие ContractFilter в EndpointDispatcher. Это может быть связано либо с несоответствием контракта (несовпадающие действия между отправителем и получателем), либо с несоответствием привязки / безопасности между отправителем и получателем. Убедитесь, что отправитель и получатель имеют одинаковый контракт и одну и ту же привязку(включая требования безопасности, например, Сообщение, Транспорт, Нет). "NKolayOfiss-MacBook-Pro: мыльница nkolayofis $ php index.php, неверный запрос 400string (0) ""