我一直在开发一个应用程序,其中涉及使用 PHP 脚本作为客户端和 Java Restful WS。
PHP 使用 WS 的方式是通过使用 curl 的 POST:
$url = "http://192.168.3.41:8013/module.ModuleSearch/getResults/jsonp";
$xmlParam = 'xmlQuery='.$rawXml;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$xmlParam);
$info = curl_exec ($ch);
curl_close ($ch);
echo $info;
对于应用程序的要求,我有一个代理,它正在监听我的所有请求,这个代理需要接收 URL,因为我需要从 URL 中提取一些元素,比如参数。
当我使用 GET 时,没有问题,在我的代理中使用 Java 套接字我可以从输入流中检索几乎所有数据;例如:
|DETECTED|-===========> GET /module.ModuleSearch/getResults/jsonp?idFolder=idPub1&callback=__gwt_jsonp__.P0.onSuccess&failureCallback=__gwt_jsonp__.P0.onFailure HTTP/1.1
|DETECTED|-===========> Host: 192.168.3.41:8013
|DETECTED|-===========> Connection: keep-alive
|DETECTED|-===========> User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Ubuntu Chromium/23.0.1271.97 Chrome/23.0.1271.97 Safari/537.11
|DETECTED|-===========> Accept: */*
|DETECTED|-===========> Referer: http://dev.test.server/php/scriptTest/phpTest.php?idFolder=idPub1/back5&uid=xx&portalIp=192.168.3.41&port=8013
|DETECTED|-===========> Accept-Encoding: gzip,deflate,sdch
|DETECTED|-===========> Accept-Language: es-419,es;q=0.8
|DETECTED|-===========> Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
|DETECTED|-===========>
但在 post 的情况下,我只是检索:
2013-06-03 07:52:19,012 [myid:] - DEBUG [Thread-2:FirstLineScanner@55] - -|DETECTED|-===========> POST /module.ModuleSearch/getResults/jsonp HTTP/1.1
2013-06-03 07:52:19,311 [myid:] - DEBUG [Thread-2:FirstLineScanner@55] - -|DETECTED|-===========> Host: 192.168.3.41:8013
2013-06-03 07:52:19,502 [myid:] - DEBUG [Thread-2:FirstLineScanner@55] - -|DETECTED|-===========> Accept: */*
2013-06-03 07:52:20,125 [myid:] - DEBUG [Thread-2:FirstLineScanner@55] - -|DETECTED|-===========> Content-Length: 31
2013-06-03 07:52:20,404 [myid:] - DEBUG [Thread-2:FirstLineScanner@55] - -|DETECTED|-===========> Content-Type: application/x-www-form-urlencoded
2013-06-03 07:52:21,011 [myid:] - DEBUG [Thread-2:FirstLineScanner@55] - -|DETECTED|-===========>
我知道当您使用 POST 时,无法像在 get 中那样接收数据,但是有没有办法像在 GET 中那样提取参数或完整的请求 URL?
请如果有人可以帮助我,我将非常感激。非常感谢您提前。