2011-12-02 9 views
42

Mathematicaを使って、HTTP POSTとXMLを使ってJSPを介してサードパーティのWebサーバとやりとりすることが任されています。私が送信するために必要なものの例:私は(XML)を受け取ります何のMathematica 8.0はHTTP POSTとXMLを使ってWebサーバJSPと対話する

<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> 

例:

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

私はアクセスにはJ/Linkを使用するのTwitterとの相互作用については、2009年に書かれたblog by Robert Raguet-Schofieldを見つけましたJavaを使用してHTTP POSTを実行し、応答を処理します。

私の質問は、私の仕事を達成するための最良の方法ですか、または2009年以来Mathematicaを進化させましたか?私の仕事を達成するためのより良い方法がありますか?

+2

RagfieldもPOSTの質問に答えています:http://stackoverflow.com/q/5853134/615464 –

+1

POSTの内容は、この質問にもあります:http://stackoverflow.com/q/8038288/615464 –

+0

[Arnoudの答え](http://stackoverflow.com/a/8336207/198315)へのコメントに基づいて、私はあなたがこれを行うために 'JLink'に固執していると思います。 – rcollyer

答えて

1

これは良い方法ではないかもしれませんが、J/Linkの必要性を回避する代わりの方法は、中間CGIスクリプトを設定してGETからPOSTへのリクエストを翻訳することです。

このスクリプトファイルは、アクセス可能なサーバー上に置かれ、指定されたGETクエリを受け取り、ターゲットページでPOST要求を行い、次に結果XMLを通常の方法で出力します。

たとえば、PHPでcurlを使用すると、うまくいくはずですが、明らかにほとんどのCGI言語で同じ機能を実現することは可能です。

<?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... 

?> 

Mathmaticaから、これはあなたが単にプロキシページに標準GET要求を行うが、ログインページPOSTリクエストから結果のXMLを取得するためにimport方法で構築を使用してはるかに簡単である点に立っています。

関連する問題