Android使用Post方法获取Json配置

1. 首先是使用Post方法从网络获取Json的代码, 返回类型为String:

public  String SendPostRequest(String param_key, String param_val){
        HttpURLConnection conn=null;
        String backcontent="";
        try { 
	    String str_url="http://www.forexample.com/"; 
	    URL url = new URL(str_url); 
	    conn = (HttpURLConnection) url.openConnection(); 
	    conn.setRequestMethod("POST"); 
	    //conn.setRequestProperty("Content-Type", "application/json"); 
	    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
	    conn.setConnectTimeout(1000); 
	    DataOutputStream outputStream=new DataOutputStream(conn.getOutputStream()); 
	    String param=param_key + "=" + URLEncoder.encode(param_val,"UTF-8"); 
	    outputStream.writeBytes(param); 
	    outputStream.flush(); outputStream.close(); 
	    if(HttpURLConnection.HTTP_OK==conn.getResponseCode()){ 
	        Log.i("POST","post sucess"); 
	        StringBuffer sb=new StringBuffer(); 
	   	String readLine=new String(); 
		BufferedReader responseReader=new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); 
		while((readLine=responseReader.readLine())!=null){ 
		    sb.append(readLine).append("\n"); 
				backcontent= sb.toString(); 
		backcontent=URLDecoder.decode(backcontent,"UTF-8"); 
		Log.i("Post","post content" + backcontent); 
		responseReader.close(); 
	    }else { 
	        Log.i("POST","post failed"); 
		} catch (Exception e) { 
	    e.printStackTrace(); 
	} finally { 
	    conn.disconnect(); 
		return backcontent; 
}

2. 调用方式,我是直接放在了onCreate方法中,需要注意的是StrictMode的两行代码,如果不赋予权限可能访问失败:

  StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
  StrictMode.setThreadPolicy(policy);
  String response_content = SendPostRequest("client_platform", "Android");

3. 后面的可以对response_content进行解析获取json的格式的配置信息,在最后贴一下可能用到的依赖包。

import android.os.Bundle;
import android.widget.TextView;
import android.content.Intent;
import android.net.Uri;
import android.os.StrictMode;

import java.io.InputStream;
import java.lang.reflect.Method;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import android.util.Log;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.DataOutputStream;
import java.io.BufferedReader;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.io.InputStreamReader;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.content.Context;


猜你喜欢

转载自blog.csdn.net/u011089570/article/details/80942854