이 문제와 관련된 많은 질문이 있지만 PHP에서 Rest Web Service로 데이터를 게시하는 특정 요구 사항에 직면하고 있습니다. 세부 사항은 위에서 설명했지만 요약하면 URL (REST WS)에 데이터를 게시하고 CURLOPT_POSTFIELDS를 설정하면 데이터가 요청에 추가되지 않습니다.PHP post 데이터가 Java Rest Web Service를 호출하도록 설정되지 않음
시나리오 : Java Web Services (REST)가 모듈로 실행되는 경우가 많습니다. 예를 들어, REST 인 fileUploadModule을 가지고 있고 또 다른 나머지 databaseModule과 마지막으로 SearchModule을 가지고 있습니다. 휴식. 파일 및 데이터베이스의 경우를 들어
http://[MY IP]:8020/system.file.ws.module.ModuleFile/getResults/jsonp?fileName=fileName
http://[MY IP]:8021/system.search.ws.module.ModuleSearch/getResults/jsonp?xmlQuery=myXml
, 나를 통해 모듈에 연결 GWT를 사용하기 전에 코드를 관리 한 프로그래머 :
내가 좋아하는 링크를 사용하여 직접 내 나머지 모듈을 호출 할 수 있습니다 대리; 예를 들면 :
http://[MY_PROXY_IP]:8013/system.file.ws.module.ModuleFile/getResults/jsonp?fileName=fileName
내 프록시에 나는이 경우에 나는 GET을 사용하여 요청의 값이 받아 인쇄 할 수 있습니다와 나는 같은 요청을 인쇄 할 수 있습니다
GET /system.file.ws.module.ModuleFile/getResults/jsonp?fileName=idc1&folderType=campaign&callback=__gwt_jsonp__.P0.onSuccess&failureCallback=__gwt_jsonp__.P0.onFailure HTTP/1.1
합니다. 이제는 PHP를 통해 실행해야하는 검색에 대한 책임이 있습니다. 나는 모듈에 직접 URL을 테스트하고 그것을 작동하지만 나는 그것이 작동하는 것 같군하지 않는 프록시에 의해 그것을하려고하면, 내 프록시에 도달하지만 요청을 인쇄 할 때 그것은 불완전 :
POST /system.search.ws.module.ModuleSearch/getResults HTTP/1.1
그리고 모듈 파일과 같은 것을 받아야한다. PHP 코드를 공유한다. 모두 괜찮아 보이지만, 내가 틀린 일을 할 수 있는지 모르겠다. CURLOPT_POSTFIELDS에서 매개 변수를 설정할 때 문자열이 아니다.
$url = "http://192.168.3.41:8013/system.search.ws.module.ModuleSearch/getResults";
try {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
$rawXml = $_POST['rawXml'];
$rawXml = str_replace("%", "%25", $rawXml);
$rawXml = str_replace("&", "%26", $rawXml);
$rawXml = str_replace("=", "%3D", $rawXml);
echo $rawXml;
curl_setopt ($ch, CURLOPT_POSTFIELDS,'xmlQuery='.$rawXml);
$info = curl_exec ($ch);
curl_close ($ch);
echo $info;
} catch (Exception $e){
echo $e->getMessage();
}
설정되고 난 정말 당신의 도움이나 관찰을 부탁드립니다하시기 바랍니다. 당신보다 훨씬 앞서.
커맨드 라인에서 말았습니까? 예 : '컬 --data "XMLQUERY = {XMLQUERY}에"http : //192.168.3.41 : 터미널 (8013)/system.search.ws.module.ModuleSearch/getResults' –
네,하지만 난이없는 명령을 사용할 수 . –