android USES the url connection sample of get and post data to get the returned data
- 2020-05-19 05:54:07
- OfStack
1 must include a permission statement for the Sd card to read and write files, as well as access to the network
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
get/post tools
package com.act262.whpj.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
import android.os.Environment;
import android.util.PrintStreamPrinter;
/**
* Used for get or post data
*/
public class GetPostUtil {
public static final String TAG = "GetPostUtil Debug";
/**
* @param url
* The incoming url, Query parameters are included
* @return return get After the data
*/
public static String sendGet(String url) {
String result = "";
// String
URL realURL = null;
URLConnection conn = null;
BufferedReader bufReader = null;
String line = "";
try {
realURL = new URL(url);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("url Invalid format ");
}
try {
conn = realURL.openConnection();
// Set connection parameters ...conn.setRequestProperty("xx", "xx");
conn.setConnectTimeout(10000); // 10s timeout
// conn.setRequestProperty("accept", "*/*");
// conn.setRequestProperty("", "");
conn.connect(); // The connection sends the parameter out get methods
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(" Connection error ");
}
try {
bufReader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "gb2312"));
while ((line = bufReader.readLine()) != null) {
result += line + "\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(" Reading error ");
} finally {
// Release resources
if (bufReader != null) {
try {
bufReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return result;
}
/**
* @param url
* @param param
* Query parameters , Form such as name=xx&age=xx&sex=xx
* @return
*/
public static String sendGet(String url, String param) {
return sendGet(url + "?" + param);
}
/**
* @param url
* The specified url, Query parameters are not included
* @param param
* Query parameters Form such as name=xx&age=xx&sex=xx
* @return return post After the data
*/
public static String sendPost(String url, String param) {
String result = "";
URL realURL = null;
BufferedReader bufReader = null;
// PrintWriter printWriter = null;
PrintStreamPrinter out = null;
URLConnection connection = null;
String line = "";
try {
realURL = new URL(url);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
connection = realURL.openConnection();
// Set to I/o post The pattern of , And you can't get the input data before the output , Otherwise an error
connection.setDoOutput(true);
connection.setDoOutput(true);
// It's already connected , So you can't use it anymore connect(), Otherwise, it's wrong
out = new PrintStreamPrinter(new PrintStream(
connection.getOutputStream()));
out.println(param);
//
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bufReader = new BufferedReader(new InputStreamReader(
connection.getInputStream(), "gb2312"));
while ((line = bufReader.readLine()) != null) {
result += line + "\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// Release resources
try {
if (bufReader != null) {
bufReader.close();
}
if (out != null) {
//
}
} catch (IOException e2) {
// TODO: handle exception
}
}
return result;
}
public static void saveFile(String content) {
File file = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath(), "file.html");
if (!file.exists()) {
try {
boolean status = file.createNewFile();
System.out.println("is create new file :" + status);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
PrintWriter pw = null;
try {
FileWriter fw = new FileWriter(file);
// pw = new PrintWriter(new Date() + ".html");
// pw.println(content);
fw.write(content);
fw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if (pw != null) {
pw.close();
}
}
}
}
The test class
package com.act262.whpj.ui;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.act262.whpj.R;
import com.act262.whpj.utils.GetPostUtil;
public class StartActivity extends Activity {
Button get, post;
TextView showTextView;
Handler handler;
String result = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
get = (Button) findViewById(R.id.get);
post = (Button) findViewById(R.id.post);
showTextView = (TextView) findViewById(R.id.show);
handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 0x123) {
showTextView.setText(result);
}
}
};
post.setOnClickListener(new ButtonListener());
get.setOnClickListener(new ButtonListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.start, menu);
return true;
}
class ButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.get:
new Thread() {
public void run() {
result = GetPostUtil
.sendGet("http://www.baidu.com");
handler.sendEmptyMessage(0x123);// notice UI Thread update interface
// Log.d(GetPostUtil.TAG, result);
System.out.println(result);
GetPostUtil.saveFile(result);
}
}.start();
showTextView.setText(result);
break;
case R.id.post:
new Thread() {
public void run() {
result = GetPostUtil
.sendPost(
"http://www.baidu.com",
"null");
handler.sendEmptyMessage(0x123);// notice UI Thread update interface
Log.d(GetPostUtil.TAG, result);
}
}.start();
showTextView.setText(result);
break;
default:
break;
}
}
}
}