gpt4 book ai didi

php - 无法使用 PHP 套接字发送 XML 数据

转载 作者:行者123 更新时间:2023-12-03 11:55:53 26 4
gpt4 key购买 nike

我正在尝试通过使用 SOAP 的代理连接到 Web 服务。问题是我不能使用 cURL,也不能添加任何模块来使这个 SOAP 消息更容易编写,我必须手动为消息创建 XML 并通过我的代理发送它。好消息是我实际上能够建立与 Web 服务的连接,唯一的问题是我收到的每个回复都说:“空消息 - 未收到数据”。谁能看到我的套接字在通过 XML 发送时做错了什么:

/*this is just striped of personal info, 
the XML I'm actually using is valid since
on my development environment (which has cURL)
will successfully get results with this XML*/

$request = '<soapenv:Envelope>';
$request .= '<soapenv:Header>';
$request .= '</soapenv:Header>';
$request .= '<soapenv:Body>';
$request .= '</soapenv:Body>';
$request .= '</soapenv:Envelope>';

$fp = fsockopen($proxy, 80, $errno, $errstr, 100);
if (!$fp) {
echo "$errstr ($errno)<br />\r\n";
} else {
$out = "POST " . $path . " HTTP/1.1\r\n";
$out .= "Host: " . $host . "\r\n";
$out .= "Content-Length: " . strlen($request) . "\r\n";
$out .= "Content-Type: text/xml; charset=utf-8\r\n";
$out .= "SOAPAction: \"XXXXXXXXXXXXXX\"\r\n";
$out .= "Accept: text/xml\n";
$out .= "Proxy-Authorization: Basic $auth\r\n";
$out .= "Connection: close\r\n\r\n";
$out .= $request;
$output = '';
fwrite($fp, $out);
while (!feof($fp)) {
$output .= fgets($fp);
}
fclose($fp);
}
$output = trim(substr($output, strpos($output, "<?")));
print_r($output);

最佳答案

我在 Java 中使用了一些 HTTP,这可以帮助你。
标题字段由 CRLF "\r\n"分隔:

..

$out  = "POST " . $path . " HTTP/1.1\r\n";
$out .= "Host: " . $host . "\r\n";

..

关于php - 无法使用 PHP 套接字发送 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18466013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com