2011-12-02 2 views
42

내가 HTTP POST와 XML을 사용하여 JSP를 통해 제 3 자 웹 서버와 상호 작용하는 티카를 사용하여 임무를하고있다. 내가 받게됩니다 무엇티카 8.0 상호 작용은

<html> 
<head></head> 
<body> 
<form method="post" action="http://www. ... .com/login.jsp"> 
<textarea name="xml" wrap="off" cols="80" rows="30" spellcheck="false"> 
<loginInfo> 
<param name="username" type="string">USERNAME</param> 
<param name="pwd" type="string">PASSWORD</param> 
</loginInfo> 
</textarea> 
<input type="hidden" name="Login" value="1"/> 
<input type="submit" name="go" value="go" /> 
</form> 
</body> 
</html> 

예 (XML을) : 내가 보낼 필요가 무엇의 예

<UserPluginInfo> 
    <PluginInfo> 
    <param name="pluginUid" type="string">1</param> 
    </PluginInfo> 
    <UserInfo> 
    <param name="username" type="string">USERNAME</param> 
    </UserInfo> 
</UserPluginInfo> 

나는 액세스 J/링크를 사용하여 트위터와의 상호 작용에 대해 2009 년에 작성된 blog by Robert Raguet-Schofield 발견 Java는 HTTP POST를 수행하고 응답을 처리합니다.

내 질문이 내 작업을 수행하는 가장 좋은 방법입니다 또는 티카는 2009 진화하고 내 작업을 수행 할 수있는 더 좋은 방법 (정직 이상)이 있습니까?

+2

Ragfield도 POST에 관한 질문에 답변했습니다 : http://stackoverflow.com/q/5853134/615464 –

+1

일부 게시물은이 질문에서 찾을 수 있습니다. http://stackoverflow.com/q/8038288/615464 –

+0

의 의견에 기초하여 아 누드의 대답 (http://stackoverflow.com/a/8336207/198315), 나는 당신이이 일을 위해 JLink' '와 함께 붙어 있다고 생각. – rcollyer

답변

1

더 좋은 방법은 아니지만 J/Link의 필요성을 우회하는 또 다른 방법은 중간 CGI 스크립트를 설정하여 GET에서 POST으로 요청을 변환하는 것입니다. 이 스크립트 파일에 접근 가능한 서버에 앉아 것

, 그것은 지정된 GET 쿼리을 대상 페이지에 POST 요청을 만들 것, 다음 출력/일반적인 방법으로 결과 XML을 반환합니다. 분명히 거의 모든 CGI 언어로 동일한 기능을 달성 할 수있을 것입니다하지만 - 잘 작동 PHP의 사용 예를 들어

, curl. 매스 매 티카에서

<?php 
$c = curl_init(); 

// set the various options, Url, POST,etc 
curl_setopt($c, CURLOPT_URL, "http://www. ... .com/login.jsp"); // Target page 
curl_setopt($c, CURLOPT_HEADER, false); 
curl_setopt($c, CURLOPT_POST, true); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, false); 

// POST the incomming query to the Target Page 
curl_setopt($c, CURLOPT_POSTFIELDS, $_SERVER['QUERY_STRING']); 
curl_exec($c); 
curl_close($c); 

// Output the XML response using header/echo/etc... 
// You might need to also send some of the POST request response headers 
// use CURLOPT_HEADER to access these... 

?> 

이 당신이 단순히 프록시 페이지에 표준 GET 요청을하지만 로그인 페이지에 POST 요청에서 결과 XML을 얻을 import 방법에 내장 된 사용으로 훨씬 간단 지점을 서있다.