簡體   English   中英

使用Curl捕獲通過POST通過Java代理從PHP發送到Java Rest WS的POST發送的輸入參數

[英]Catch the input parameter sent through POST from PHP to Java Rest WS through Java Proxy using Curl

我一直在開發一個應用程序,其中涉及使用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|-===========> 

但是在發布的情況下,我只是檢索:

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?

請有人幫助我,我將非常感激。 提前非常感謝您。

我解決了這個問題,這很容易。 始終獲取URL(標題部分)中的參數,而POST在正文部分包含參數。 我的Java類實際上是問題所在,因為它僅檢索標頭,因為它在有行時迭代接收到的請求,如果它檢測到並為空行,則循環會中斷,但是要將標頭與主體分開,必須有兩個空行他們之間,所以這就是為什么我看不到我的參數。 希望它對遇到同樣問題的人有所幫助,謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM