android http-post方法简单实现
16lz
2021-01-23
package
com.hl;
002 |
003 | import java.io.BufferedReader; |
004 | import java.io.IOException; |
005 | import java.io.InputStream; |
006 | import java.io.InputStreamReader; |
007 | import java.util.ArrayList; |
008 | import java.util.HashMap; |
009 | import java.util.Iterator; |
010 | import java.util.Map; |
011 | import java.util.Set; |
012 |
013 | import org.apache.http.HttpEntity; |
014 | import org.apache.http.HttpResponse; |
015 | import org.apache.http.client.entity.UrlEncodedFormEntity; |
016 | import org.apache.http.client.methods.HttpPost; |
017 | import org.apache.http.impl.client.DefaultHttpClient; |
018 | import org.apache.http.message.BasicNameValuePair; |
019 |
020 | import android.app.Activity; |
021 | import android.os.Bundle; |
022 | import android.view.View; |
023 | import android.view.View.OnClickListener; |
024 | import android.widget.Button; |
025 | import android.widget.EditText; |
026 | import android.widget.TextView; |
027 |
028 | public class SimplePOST extends Activity { |
029 |
private TextView show; |
030 |
private EditText txt; |
031 |
private Button btn; |
032 |
|
033 |
@Override |
034 |
public void onCreate(Bundle savedInstanceState) { |
035 |
super .onCreate(savedInstanceState); |
036 |
setContentView(R.layout.main); |
037 |
show = (TextView)findViewById(R.id.show); |
038 |
txt = (EditText)findViewById(R.id.txt); |
039 |
btn = (Button)findViewById(R.id.btn); |
040 |
btn.setOnClickListener( new OnClickListener() { |
041 |
|
042 |
@Override |
043 |
public void onClick(View v) { |
044 |
dopost(txt.getText().toString()); |
045 |
|
046 |
} |
047 |
}); |
048 |
} |
049 |
050 |
private void dopost(String val){ |
051 |
//封装数据 |
052 |
Map<String, String> parmas = new HashMap<String, String>(); |
053 |
parmas.put( "name" , val); |
054 |
|
055 |
DefaultHttpClient client = new DefaultHttpClient(); //http客户端 |
056 |
HttpPost httpPost = new HttpPost( "http://mhycoe.com/test/post.php" ); |
057 |
|
058 |
ArrayList<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>(); |
059 |
if (parmas != null ){ |
060 |
Set<String> keys = parmas.keySet(); |
061 |
for (Iterator<String> i = keys.iterator(); i.hasNext();) { |
062 |
String key = (String)i.next(); |
063 |
pairs.add( new BasicNameValuePair(key, parmas.get(key))); |
064 |
} |
065 |
} |
066 |
|
067 |
try { |
068 |
UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(pairs, "utf-8" ); |
069 |
/* |
070 |
* 将POST数据放入HTTP请求 |
071 |
*/ |
072 |
httpPost.setEntity(p_entity); |
073 |
/* |
074 |
* 发出实际的HTTP POST请求 |
075 |
*/ |
076 |
HttpResponse response = client.execute(httpPost); |
077 |
HttpEntity entity = response.getEntity(); |
078 |
InputStream content = entity.getContent(); |
079 |
String returnConnection = convertStreamToString(content); |
080 |
show.setText(returnConnection); |
081 |
} catch (IllegalStateException e) { |
082 |
e.printStackTrace(); |
083 |
} catch (IOException e) { |
084 |
e.printStackTrace(); |
085 |
} |
086 |
|
087 |
} |
088 |
089 |
private String convertStreamToString(InputStream is) { |
090 |
BufferedReader reader = new BufferedReader( new InputStreamReader(is)); |
091 |
StringBuilder sb = new StringBuilder(); |
092 |
String line = null ; |
093 |
try { |
094 |
while ((line = reader.readLine()) != null ) { |
095 |
sb.append(line); |
096 |
} |
097 |
} catch (IOException e) { |
098 |
e.printStackTrace(); |
099 |
} finally { |
100 |
try { |
101 |
is.close(); |
102 |
} catch (IOException e) { |
103 |
e.printStackTrace(); |
104 |
} |
105 |
} |
106 |
return sb.toString(); |
107 |
} |
108 | } |
更多相关文章
- 通过CMD 查看android APP数据库表
- android 利用socket 发送Json数据demo
- Android 简单数据库(增删改查)
- android中IO操作数据总结
- Android sd卡读取数据库实例代码
- Android作为CXF客户端调用服务端。
- Android的ListView,数据更新后自动scroll到底部。
- Android菜鸟日记10 SQLite 数据库
- Android客户端与服务端交互-客户端GET方式登录和客户端POST方式