我是Android的新手,但我在Android中使用XML解析器来解析我的应用程序中的RSS。 现在我想向我的服务器发送和接收新的应用程序数据。
我开发了我的Web API的服务器端,对其进行了测试,到目前为止它正在运行。所以当我打电话给这样的网址时
http://URL/api/getQuery/value1/value2
我得到这个XML(并根据需要使用JSON)。
<ArrayOfstring>
<string>4.5</string>
<string>Glu Mobile</string>
<string>4.2.0</string>
<string>1392/07/18</string>
<string>500</string>
<string>112MB</string>
<string>free</string>
<string>creator</string>
<string>describtion</string>
<string>similarapp</string>
</ArrayOfstring>
现在我想调用该url并接收XML或JSON字符串,然后将其解析为数组或列表。 我怎么能这样做?
答案 0 :(得分:1)
使用排球图书馆...这对你来说非常有用......你可以找到链接......下载并检查一下你第一次做第一次耐心是非常容易的......
https://github.com/ogrebgr/android_volley_examples
或
您可以使用 Asynctask 从服务器获取JSON数据。
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.Settings.System;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class AsyncTaskActivity extends Activity implements OnClickListener {
Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.button1);
// because we implement OnClickListener we only have to pass "this"
// (much easier)
btn.setOnClickListener(this);
}
public void onClick(View view) {
// detect the view that was "clicked"
switch (view.getId()) {
case R.id.button1:
new LongOperation().execute("");
break;
}
}
private class LongOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String url = params[0];
HttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
request.setHeader("Content-Type", "text/xml");
HttpResponse response;
try {
response = httpClient.execute(request);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return response;
}
@Override
protected void onPostExecute(String result) {
// Result is in String Format
// you can use JSON api to convert into JSONObject
}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Void... values) {}
}
}