我正在开发一个涉及解析的android应用程序。我想在android中将参数传递给url。我应该如何继续?在android中传递参数到url
2
A
回答
6
请试试这个。
HttpPost postMethod = new HttpPost("your url");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("your parameter","parameter value"));
nameValuePairs.add(new BasicNameValuePair("your parameter","parameter value"));
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
DefaultHttpClient hc = new DefaultHttpClient();
HttpResponse response = hc.execute(postMethod);
nameValuePairs用于在url中添加参数。
0
这里亚去(可与寻呼大)
public void Execute(final Request request,final ClientCallBackHandler CallBack)
{
new Thread(new Runnable(){
@Override
public void run() {
HttpParams myParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(myParams, 10000);
HttpConnectionParams.setSoTimeout(myParams, 10000);
DefaultHttpClient httpClient = new DefaultHttpClient(myParams);
//dunno if this is correct...
if(CurrentConnection.SvUsr.length() > 0)
{
httpClient.getCredentialsProvider().setCredentials(
new AuthScope(CurrentConnection.SvUrl, 80, null, "Digest"),
new UsernamePasswordCredentials(CurrentConnection.SvUsr, CurrentConnection.SvPw));
}
HttpContext localContext = new BasicHttpContext();
if(CurrentConnection != null)
{
HttpPost httpPost = new HttpPost(CurrentConnection.SvUrl);
try {
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
String blah = SerializeRequest(request);
pairs.add(new BasicNameValuePair("request",blah));
httpPost.setEntity(new UrlEncodedFormEntity(pairs));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
if(CallBack != null)
{
CallBack.SetStatus(ClientCallBackHandler.ENCODING_EXCEPTION);
}
return;
}
try {
if(CallBack != null)
CallBack.SetStatus(ClientCallBackHandler.HTTP_DID_START);
HttpResponse response = httpClient.execute(httpPost,localContext);
if(response != null)
{
if(CallBack != null)
{
CallBack.response = DeserializeResponse(EntityUtils.toString(response.getEntity()));
CallBack.SetStatus(ClientCallBackHandler.HTTP_DID_SUCCEED);
}
return;
}
else
{
if(CallBack != null)
{
CallBack.SetStatus(ClientCallBackHandler.HTTP_DID_ERROR);
}
return;
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
if(CallBack != null)
{
CallBack.SetStatus(ClientCallBackHandler.CLIENT_PROTOCOL_EXCEPTION);
}
e.printStackTrace();
return;
} catch (IOException e) {
// TODO Auto-generated catch block
if(CallBack != null)
{
CallBack.SetStatus(ClientCallBackHandler.IO_EXCEPTION);
}
e.printStackTrace();
return;
}
}
}
}).start();
}
的SerializeRequest()梅索德转换的youre请求转换成字符串的youre服务可以理解...例如我的是这样看:
public String SerializeRequest(Request request) {
Gson gson = gsonb.create();
String JScript = gson.toJson(request);
Log.v(request.getClass().getName(),JScript);
return JScript;
}
的DeserializeResponse()梅索德确实的此几乎相反的,所以在GSON的情况下:
public Response DeserializeResponse(String Jscript)
{
Response response = null;
try {
JSONObject jsonObject = new JSONObject(Jscript);
Gson gson = gsonb.create();
response = gson.fromJson(jsonObject.toString(), Response.class);
if(response.ClassName.compareTo("ExceptionResponse")==0)
response = gson.fromJson(jsonObject.toString(), ExceptionResponse.class);
} catch (JSONException e) {
// TODO Auto-generated catch block
response = new ExceptionResponse();
((ExceptionResponse) response).Message = Jscript;
}
Log.v(response.getClass().getName(),Jscript);
return response;
}
0
private void postData(final String param, final TextView tv) {
RequestQueue rq = Volley.newRequestQueue(this);
StringRequest postReq = new StringRequest(Request.Method.POST,
"https://your URL",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
tv.setText(response); // We set the response data in the
// TextView
Toast.makeText(getApplicationContext(), "Response"+response,Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("Error [" + error + "]");
Toast.makeText(getApplicationContext(), "No Internet!!!", Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("your key", "value");
params.put("any callback methods", "value");
params.put("any types", "value");
return params;
}
};
rq.add(postReq);
相关问题
- 1. 传递URL参数在JavaScript
- 2. 参数没有被传递到Android中的URL
- 3. Laravel在URL中传递参数
- 4. 在WordPress URL中传递查询参数
- 5. 在CodeIgniter中通过URL传递参数
- 6. 如何在jQuery中传递url参数
- 7. 在URL中传递多个参数
- 8. 如何在URL中传递POST参数?
- 9. 从android中传递byte []参数到soap.Net
- 10. 如何传递url参数到templateUrl
- 11. 将jquery的URL参数传递到php
- 12. 如何将url参数传递到iframe?
- 13. 通过URL传递参数
- 14. 通过url传递参数
- 15. Backstop js - 传递url参数
- 16. 通过url传递参数
- 17. Java URL - 传递参数 - Servlets
- 18. URL份额传递参数
- 19. 传递参数的URL
- 20. 如何从url传递参数到phonegap android应用
- 21. 在Android中通过URI传递参数
- 22. 分页和传递url参数在php
- 23. 如何在POST上传递Url参数?
- 24. 传递参数的URL在Django
- 25. 将参数传递给struts2中的URL?
- 26. 在url中传递参数到另一个页面
- 27. 将参数从android传递到Web Api
- 28. 从android studio传递-P参数到gradle
- 29. Android参数传递方法
- 30. JavascriptInterface Android传递参数
试试这个[link](http://www.androidpeople.com/xml-parsing) – 2011-03-16 06:43:06