/**
* get方法使用
*/
private void httpGet() {
new Thread() {
@Override
public void run() {
            //此处的LOGIN是请求地址后面是拼接的参数
String path = LOGIN + "?phone=12345678900&password=123456";
URL url;
HttpURLConnection connection;
try {
url = new URL(path);
connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(4000);//设置链接超时
connection.setRequestMethod("GET");//设置请求方法 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//设置请求体的内容,处处默认也是一样表示请求的是文本内容 int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
final String s = stremToString(inputStream); runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
}
});
inputStream.close();
} } catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
    /**
* post方法
*/
private void httpPost(final Map<String, String> prams) {
new Thread() {
@Override
public void run() {
if (prams == null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "缺少参数!", Toast.LENGTH_SHORT).show();
}
});
return;
}
URL url;
HttpURLConnection connection;
try {
//拼接传入的请求参数
StringBuffer buffer = new StringBuffer();
//读取传入的map集合里参数
for (Map.Entry<String, String> entry : prams.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
//拼接参数 例如:phone = 12345678900 & password = 123456
buffer.append(key + "=" + URLEncoder.encode(value, "utf-8") + "&");
}
//此处是删除末尾拼接的 & 符号
buffer.deleteCharAt(buffer.length() - 1);
//REGISTER 是我自己服务器的一个测试请求地址
url = new URL(REGISTER);
connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(4000); //此处的输出流表示 服务器对客服端的响应输出流 即InPutStream
//此处的输入流表示 客服端向服务器输入数据即 OutPutStream
connection.setDoInput(true);//获取服务器的响应输出流 此处默认是true 可以不用设置
connection.setDoOutput(true);//设置允许向服务其写入数据,获取向服务器的输入流。
connection.setRequestMethod("POST");
//此处设置向服务器请求的内容 请求的是文本内容 默认是可以不用设置的
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
//设置向服务器输入的请求体长度
connection.setRequestProperty("Content-Length", String.valueOf(buffer.toString().getBytes().length));
//向服务器写入请求体
connection.getOutputStream().write(buffer.toString().getBytes());
//获取请求状态吗 HttpURLConnection.HTTP_OK 为请求成功 写200 也可以的
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
final String result = stremToString(inputStream);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
});
inputStream.close();
} } catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
  /**
* 把输入流转换成字符串
*
* @param inputStream
* @return
* @throws IOException
*/
private String stremToString(InputStream inputStream) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
if (inputStream != null) {
int len;
byte[] bytes = new byte[1024];
while ((len = inputStream.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
return bos.toString();
} else {
return "";
}
}

最后 各位小伙伴们 又不懂或不清楚的可以给我留言 欢迎大家给我提出建议 或是指出问题 我们彼此都需要一个学习的过程

最新文章

  1. Android Studio导入项目遇到的问题
  2. BZOJ 3343: 教主的魔法 [分块]【学习笔记】
  3. 安装eclipse的hadoop开发环境
  4. CSS3:不可思议的border属性&amp;Web字体图标Font Awesome
  5. Configure,make,make install详解
  6. 方法的可变长参数 传入参数个数不确定可用(Type ... values)
  7. nodejs小问题:express不是内部或外部命令(转载)
  8. java.util.ConcurrentModificationException 解决办法(转)
  9. Codevs 1048 石子归并
  10. 转:我终于离开了年薪30w的IT行业
  11. html5实现饼图和线图
  12. Jetty容器
  13. cmd命令行结果保存到txt里,屏幕显示一行就保存一行到txt
  14. greenplum中to_date函数注意点
  15. /etc/hosts和/etc/hostname区别
  16. vscode 折叠所有区域代码的快捷键
  17. 图文详解 解决 MVC4 Code First 数据迁移
  18. EF学习和使用综合
  19. PG 存储函数调用变量的3种方法。
  20. ASP.NET Core中使用自定义验证属性控制访问权限

热门文章

  1. Win32编程API 基础篇 -- 3.消息处理 根据英文教程翻译
  2. 遇到很多次,要注意区分service调用,本地用户调用这些区别
  3. Vue插槽的另外一些特性
  4. Java序列化之readObjectNoData、readResolve方法
  5. bzoj2186【SDOI2008】沙拉公主的困惑
  6. JavaScript的原生引用类型
  7. LeetCode 739. Daily Temperatures (每日温度)
  8. MFC:Win32-Dll及MFC-Dll编写调用
  9. codility MinAbsSum
  10. sql server的版本检查