package com.example.myapplication2.models.CommonClasses;
import org.json.JSONObject; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLDecoder;
import com.google.gson.*; public class WebAPIOperator {
static String ip="192.168.56.192";
static String port="18011";
static String baseUri="http://"+ip+":"+port; // HttpClient httpClient;
static HttpURLConnection huc; public WebAPIOperator() { }
public static String DoGet(String locationStr,String subStr){
String str="";
try {
URL url=new URL(locationStr+subStr);
huc=(HttpURLConnection)url.openConnection();
huc.connect();
// 读取响应
BufferedReader reader = new BufferedReader(new
InputStreamReader(huc.getInputStream()));
String lines;
StringBuffer sb = new StringBuffer("");
while ((lines = reader.readLine()) != null) {
lines = URLDecoder.decode(lines, "utf-8");
sb.append(lines);
}
System.out.println(sb);
reader.close();
str=sb.toString();
} catch (IOException e) {
e.printStackTrace();
}finally {
huc.disconnect();
return str;
}
}
public static String DoGet(String locationStr){
String str="";
try {
URL url=new URL(baseUri+locationStr);
huc=(HttpURLConnection)url.openConnection();
huc.connect();
// 读取响应
BufferedReader reader = new BufferedReader(new
InputStreamReader(huc.getInputStream()));
String lines;
StringBuffer sb = new StringBuffer("");
while ((lines = reader.readLine()) != null) {
lines = URLDecoder.decode(lines, "utf-8");
sb.append(lines);
}
System.out.println(sb);
reader.close();
str=sb.toString();
} catch (IOException e) {
e.printStackTrace();
}finally {
huc.disconnect();
return str;
}
}
public static String DoPost(String locationStr,Object obj){
String str="";
try {
URL url=new URL(baseUri+locationStr);
huc=(HttpURLConnection)url.openConnection();
huc.setDoOutput(true);
huc.setDoInput(true);
huc.setRequestMethod("POST");
// huc.setRequestProperty("Content-Type","plain/text; charset=UTF-8");
huc.setRequestProperty("Content-Type","application/json; charset=UTF-8");
// 设置通用的请求属性
huc.setRequestProperty("accept", "*/*");
huc.setRequestProperty("connection", "Keep-Alive"); huc.setUseCaches(false);
huc.setInstanceFollowRedirects(true); huc.connect();
// int responseCode=huc.getResponseCode();
// System.out.println("responseCode:"+responseCode);
// Object o=huc.getOutputStream(); // OutputStream out = new BufferedOutputStream(huc.getOutputStream());
// writeStream(out);
//
// InputStream in = new BufferedInputStream(huc.getInputStream());
// readStream(in);
DataOutputStream out = new
DataOutputStream(huc.getOutputStream());
// JSONObject obj = new JSONObject();
// String json = java.net.URLEncoder.encode(obj.toString(), "utf-8");
String json=new Gson().toJson(obj);
out.writeBytes(json);
out.flush();
out.close();
// 读取响应
BufferedReader reader = new BufferedReader(new
InputStreamReader(huc.getInputStream()));
String lines;
StringBuffer sb = new StringBuffer("");
while ((lines = reader.readLine()) != null) {
lines = URLDecoder.decode(lines, "utf-8");
sb.append(lines);
}
System.out.println(sb);
reader.close();
str=sb.toString();
return str;
} catch (Exception e) {
e.printStackTrace();
}finally {
huc.disconnect();
return str;
} }
}

  

Android WebAPIOperator的更多相关文章

  1. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  2. 配置android sdk 环境

    1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/

  3. Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记

    以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...

  4. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  5. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  6. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  8. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

  9. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  10. Android UI体验之全屏沉浸式透明状态栏效果

    前言: Android 4.4之后谷歌提供了沉浸式全屏体验, 在沉浸式全屏模式下, 状态栏. 虚拟按键动态隐藏, 应用可以使用完整的屏幕空间, 按照 Google 的说法, 给用户一种 身临其境 的体 ...

随机推荐

  1. 学习jQuery核心内容这一篇就够了

    jQuery 1. 介绍 jQuery是JavaScript的工具库,对原生JavaScript中的DOM操作.事件处理.数据处理等进行封装,提供更便捷的方法. 让我们用更少的代码完成我们的js操作 ...

  2. 【转载】Linux虚拟化KVM-Qemu分析(一)

    原文信息 作者:LoyenWang 出处:https://www.cnblogs.com/LoyenWang/ 公众号:LoyenWang 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者 ...

  3. Solon v2.4.0 发布,Java 生态的新星燃起

    Solon 是什么开源项目? 一个,Java 新的生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模).与其他框架相比,它解决了两个重要的痛点:启动慢 ...

  4. Redis 主从同步原理

    一.什么是主从同步? 主从同步,就是将数据冗余备份,主库(Master)将自己库中的数据,同步给从库(Slave). 从库可以一个,也可以多个,如图所示: 二.为什么需要主从同步? Redis 虽然有 ...

  5. Django: Token分发

    Django后台token分发 在settings.py中引入 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'd ...

  6. oracle用户密码刷新

    1.查询用户信息 col username for a25 col account_status for a18 col profile for a20 select username,account ...

  7. JS优化技巧,解决冗余代码

    1. 使用箭头函数简化函数定义 // 传统函数定义 function add(a, b) { return a + b; } // 箭头函数简化 const add = (a, b) => a ...

  8. python-stack

    implements list deque LifoQueue 原文地址:https://realpython.com/how-to-implement-python-stack/ Argue lis ...

  9. grub加密与解密

    前言 grub默认无加密,用户可免密以单用户模式进入系统修改root密码.若想增强其安全性,可以将grub加密. GRUB2提供两种类型的密码保护: 修改菜单条目时需要密码,但启动菜单条目时不需要密码 ...

  10. [jenkins]简介与安装

    前言 jenkins是一种代码构建平台,一般用于CI/CD中的CI部分,当然也可以集成CD功能. 安装 环境 IP:192.168.0.10 系统:centos 7 快速安装步骤 官网下载jenkin ...