PHP socket带验证的问题

Mad4U 2007-03-15 03:31:49
PHP的socket怎么返回需要密码验证才能访问的URL?

代码
-------------------------------------------------------
<?php
error_reporting(E_ALL);

/* Get the port for the WWW service. */
$service_port = "8181";

/* Get the IP address for the target host. */
$address = "xxx.xxx.xxx.xxx";

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
} else {
;
}

$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
;
}

$in = "GET /netbiz/services/netbiz?method=queryAcctAttrs&areaID=1&acctName=xxxxxxxx";
//$in .= getenv('REMOTE_ADDR');
$in .= " HTTP/1.1\r\n";
$in .= "Host: ";
$in .= $address;
$in .= "\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

socket_write($socket, $in, strlen($in));

$data = '';
while ($out = socket_read($socket, 2048))
{
$data .= $out;
}
socket_close($socket);

echo $data;
?>
-------------------------------------------------------
以上地址是有用户名和密码才能访问的

返回结果
-------------------------------------------------------
HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
WWW-Authenticate: Basic realm="AXIS"
Content-Type: text/xml;charset=ISO-8859-1
Content-Length: 551
Date: Thu, 15 Mar 2007 07:12:33 GMT
Connection: close

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server.Unauthenticated</faultcode>
<faultstring>User 'null' not authenticated (unknown user)</faultstring>
<detail>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">xxx.xxx.xxxx.net</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
-------------------------------------------------------

问:怎么用socket来验证?

谢谢大家~~
...全文
332 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
li1229363 2007-03-26
  • 打赏
  • 举报
回复
psot表单……的的确确是这样才能实现的说……那人说的没有错。但是返回的数据由谁来得到呢?这个还得用php……这个才是最麻烦的。不知道对方返回的参数的形式是什么样子的,如果是get或者post形式的,那好说,如果是其他形式的……大汗……不知道了
Mad4U 2007-03-26
  • 打赏
  • 举报
回复
就是webService通过PHP来返回数据,PHP访问这个接口需要验证,用什么方法实现?
Mad4U 2007-03-16
  • 打赏
  • 举报
回复
不是的,是telecom的一个BIMS查询接口,他们把地址、用户名密码都提供了,需要验证才能返回一些参数,他告诉我POST表单的时候加HTTP_AUTH,我不是太明白。。。
有理想的草根 2007-03-15
  • 打赏
  • 举报
回复
我觉得,你所访问的那个网站应该是需要session的,因为是QUERY,不知道是不是因为session的问题导致的你不能访问。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧