我正在開發一個Android應用程序。我正在調用服務器上的Perl文件。這個Perl文件有不同的打印語句。在服務器上使用Perl數據在Android上顯示
我想使集體文本可用於我的android Java文件中的變量。
我已經試過這樣:
URL url= new URL("http://myserver.com/cgi-bin/myfile.pl?var=97320");
在這裏不用我請求到服務器上的文件。但是,我怎樣才能從那裏的Perl文件獲得數據呢?
我正在開發一個Android應用程序。我正在調用服務器上的Perl文件。這個Perl文件有不同的打印語句。在服務器上使用Perl數據在Android上顯示
我想使集體文本可用於我的android Java文件中的變量。
我已經試過這樣:
URL url= new URL("http://myserver.com/cgi-bin/myfile.pl?var=97320");
在這裏不用我請求到服務器上的文件。但是,我怎樣才能從那裏的Perl文件獲得數據呢?
在你的Perl服務:
use CGI qw(param header);
use JSON;
my $var = param('var');
my $json = &fetch_return_data($var);
print header('application/json');
print to_json($json); # or encode_json($json) for utf-8
返回的數據作爲JSON對象。然後使用Java的許多JSON庫之一來讀取數據。例如:http://json.org/java/:
Integer var = 97320;
InputStream inputStream = new URL("http://myserver.com/cgi-bin/myfile.pl?var=" + var).openStream();
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
// Or this if you returned utf-8 from your service
//BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8")));
JSONObject json = new JSONObject(readAll(bufferedReader));
} catch (Exception e) {
}
實際上Android庫中包含了一個JSON庫,但它並不是最簡單的:http://developer.android.com/reference/org/json/JSONObject.html見http://stackoverflow.com/questions/2818697/sending-and-parsing-json-in-android – ThomasW
「PERL」是否表示該腳本是Perl編程語言? – ThomasW
是...腳本使用PERL語言。對不起,如果模糊不清...... – typedefcoder2