HttpClient——Get,Post


package com.ch.day5_httpclient;

import java.util.List;

import com.ch.myutils.NetWorkUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
private EditText username;
private EditText userpass;
private Button login;
Context mcontext;

Handler h = new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what == 1){
if(msg.obj.equals("success")){
//跳转
Intent it = new Intent(mcontext,BaseActivity.class);
startActivity(it);
}else{
Toast.makeText(mcontext, "post请求,账号不对", 0).show();
}
}else if(msg.what == 2){
Toast.makeText(mcontext, (String)msg.obj,0).show();
if(msg.obj.equals("成功")){
//跳转
Intent it = new Intent(mcontext,BaseActivity.class);
startActivity(it);
}else{
Toast.makeText(mcontext, "post请求,账号不对", 0).show();
}
}
};
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mcontext = MainActivity.this;
init();
}

public void init(){
username = (EditText) findViewById(R.id.username);
userpass = (EditText) findViewById(R.id.userpass);
login = (Button) findViewById(R.id.login);

login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//得到登陆xinix
final String nameValue = username.getText().toString();
final String passValue = userpass.getText().toString();
if(nameValue != null && nameValue != "" && passValue != null && passValue != ""){
//判断网络是否开通
if(NetWorkUtil.isNetAvailable(mcontext)){//为真,表示网络开通
//得到服务器请求登陆,通过线程
new Thread(){
public void run() {
//请求服务器
// String rs =
// NetWorkUtil.loginCheck_Get_HttpClient(nameValue, passValue, NetWorkUtil.LOGIN_URL);
// h.sendMessage(h.obtainMessage(1, rs));
String rs =
NetWorkUtil.loginCheck_POST_HttpClient(nameValue, passValue, NetWorkUtil.LOGIN_URL);
h.sendMessage(h.obtainMessage(2, rs));
};
}.start();

}

}else{
Toast.makeText(mcontext, "请完整输入账号信息", 0).show();
}
}
});
}

}

 
   

package com.ch.myutils;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
package com.ch.myutils;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetWorkUtil {
public static final String LOGIN_URL = "http://101.200.142.201:8080/tqyb/login";
public static boolean isNetAvailable(Context context){
//获得网络管理器
ConnectivityManager connM =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = connM.getActiveNetworkInfo();//得到网络详情

if(netInfo == null || !netInfo.isAvailable())
return false;

return true;
}

public static String loginCheck_Get_HttpClient(String name,String pass,String url){
//通过StringBuffer来加工url
StringBuffer sb = new StringBuffer(url);
sb.append("?username=");
sb.append(name);
sb.append("&userpass=");
sb.append(pass);

String result = "";

HttpGet get = new HttpGet(sb.toString());//创建httpClient的get请求对象
//设置请求参数
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 5*1000);
HttpConnectionParams.setSoTimeout(params, 5*1000);

HttpClient client = new DefaultHttpClient(params);//创建HttpClient对象

try {
HttpResponse res = client.execute(get);//执行请求,获得结果
if(res.getStatusLine().getStatusCode() == 200){
HttpEntity entity = res.getEntity();//获得相应结果,是一个HttpEntity对象
result = EntityUtils.toString(entity, "utf-8");//转换为字符串
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;

}

public static String loginCheck_POST_HttpClient(String name,String pass,String url){
String result = "";

HttpPost post = new HttpPost(url);//创建httpClient的post请求对象
//设置请求参数
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 5*1000);
HttpConnectionParams.setSoTimeout(params, 5*1000);
//传值
//创建List集合,存放向服务器传递的数据
List<NameValuePair> reqData = new ArrayList<NameValuePair>();
NameValuePair p1 = new BasicNameValuePair("username", name);
NameValuePair p2 = new BasicNameValuePair("userpass", pass);
reqData.add(p1);
reqData.add(p2);

try {
HttpEntity entity = new UrlEncodedFormEntity(reqData, "utf-8");
post.setEntity(entity);//给post请求对象,设置上传的数据
HttpClient client = new DefaultHttpClient(params);//创建HttpClient对象
HttpResponse res = client.execute(post);//执行post请求,获得结果
if(res.getStatusLine().getStatusCode() == 200){
HttpEntity resEntity = res.getEntity();//获得相应结果,是一个HttpEntity对象
result = EntityUtils.toString(resEntity, "utf-8");//转换为字符串
}
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return result;

}

}

 
   
时间: 2024-10-17 01:38:33

HttpClient——Get,Post的相关文章

用gson和httpclient调用微信公众平台API

吐槽:微信api很无语,部分用xml,部分用json. 最近在找如何调用微信公众平台关于json相关的api比较方便,最后发现httpcliect和gson不错.如果你有更好的方式,请告诉我. 以下代码先了解如何使用gson和httpclient,有功夫再整到我的sophia里 import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.

HttpClient使用详解 (一)

Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性.因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入. 一.简介 HttpClient是Apache Jakarta Common下的子项目,用

SpringMVC template和HttpClient post提交

服务器的接口如果是springmvc客户端除了用springmvc提供的RestTemplate请求如下 public class RestClient { private static Logger logger = Logger.getLogger(RestClient.class); @SuppressWarnings({ rawtypes, unchecked }) public static Object post(String url, Map<string, object="

Httpclient处理摘要认证

虽然摘要认证的安全性比BASIC认证提高了不少,但是从接口调用上来看,并不比BASIC认证复杂,而且Realm和Scheme参数都可以为空,这时候就和BASIC认证的调用方式一模一样了. import java.net.URI; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.Credentia

【黑马Android】(06)使用HttpClient方式请求网络/网易新闻案例

使用HttpClient方式请求网络 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

使用Apache HttpClient访问网络(实现手机端注册,服务器返回信息)

这两天看了点网络编程,根据教程写了一个小的注册服务,贴出来. 本实例分别演示用GET方式和POST方式想服务器发送注册信息,分为客户端和服务器端两部分: 客户端注册用户信息,发送到服务器 服务器端接收信息并向客户端返回注册信息.(服务器端使用J2EE中的Servlet技术来实现,并发布到Tomcat服务器上) 代码运行效果如下: 客户端: 1.点击get注册按钮后: 客户端: 服务器端: 2.点击post注册按钮后: 客户端: 服务器端: 3.当服务器端关闭时: 客户端注册信息时会提示链接超时:

HttpClient(四)-- 使用代理IP 和 超时设置

1.代理IP的用处: 在爬取网页的时候,有的目标站点有反爬虫机制,对于频繁访问站点以及规则性访问站点的行为,会采集屏蔽IP措施.这时候,就可以使用代理IP,屏蔽一个就换一个IP. 2.代理IP分类: 代理IP的话 也分几种: 透明代理.匿名代理.混淆代理.高匿代理,一般使用高匿代理. 3.使用 RequestConfig.custom().setProxy(proxy).build() 来设置代理IP: public static void main(String[] args) throws

httpClient返回的数据类型,怎么弄

package com.etaoxue.api.third; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.security.cert.CertificateException; import java.security.cert.X509Cert

爬虫概念与编程学习之如何爬取视频网站页面(用HttpClient)(二)

先看,前一期博客,理清好思路. 爬虫概念与编程学习之如何爬取网页源代码(一) 不多说,直接上代码. 编写代码 运行 <!DOCTYPE html><html><head><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><meta http-equiv="Content-Type" content="text/html; c

Angular 4+ HttpClient

这篇,算是上一篇Angular 4+ Http的后续: Angular 4.3.0-rc.0 版本已经发布??.在这个版本中,我们等到了一个令人兴奋的新功能 - HTTPClient API 的改进版本: HttpClient 是已有 Angular HTTP API 的演进,它在一个单独的 @angular/common/http 包中.这是为了确保现有的代码库可以缓慢迁移到新的 API: 大多数前端应用都需要通过 HTTP 协议与后端服务器通讯.现代浏览器支持使用两种不同的 API 发起 H