package mydemo.mycom.demo2.service;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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 java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import mydemo.mycom.demo2.utils.StreamTools;
/**
* Created by Administrator on 2015/5/20.
*/
public class NetService {
//使用URL的Get 方式请求服务器
public static String loginByGet(String username, String password) {
try {
String path = "http://192.168.1.110:1010/UserInfo/Login?username=" + username + "&password=" +
password;
URL url =
new URL(path);
HttpURLConnection conn =
(HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000
);
conn.setRequestMethod("GET"
);
int code =
conn.getResponseCode();
if (code == 200
) {
//请求成功
InputStream is =
conn.getInputStream();
String result =
StreamTools.readInputStream(is);
return result;
} else {
//请求失败
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//使用URL的Post 方式请求服务器
public static String loginByPost(String username, String password) {
try {
String path = "http://192.168.1.110:1010/UserInfo/Login"
;
URL url =
new URL(path);
HttpURLConnection conn =
(HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000
);
conn.setRequestMethod("POST"
);
String data = "username=" + username + "&password=" +
password;
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"
);
conn.setRequestProperty("Content-Length", data.length() + ""
);
//post 的方式 实际上是浏览器把数据 写给了服务器
conn.setDoInput(
true);
OutputStream os =
conn.getOutputStream();
os.write(data.getBytes());
int code =
conn.getResponseCode();
if (code == 200
) {
//请求成功
InputStream is =
conn.getInputStream();
String result =
StreamTools.readInputStream(is);
return result;
} else {
//请求失败
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//使用HttpClient的Get 方式请求服务器 (HttpClient 过时)
public static String loginByClientGet(String username, String password) {
try {
HttpClient client =
new DefaultHttpClient();
String path = "http://192.168.1.110:1010/UserInfo/Login?username=" + username + "&password=" +
password;
HttpGet httpget =
new HttpGet(path);
HttpResponse response =
client.execute(httpget);
int code =
response.getStatusLine().getStatusCode();
if (code == 200
) {
//请求成功
InputStream is =
response.getEntity().getContent();
String result =
StreamTools.readInputStream(is);
return result;
} else {
//请求失败
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//使用HttpClient的Post 方式请求服务器 (HttpClient 过时)
public static String loginByClientPost(String username, String password) {
try {
HttpClient client =
new DefaultHttpClient();
String path = "http://192.168.1.110:1010/UserInfo/Login"
;
HttpPost httppost =
new HttpPost(path);
//指定要提交的数据实体
List<NameValuePair> list =
new ArrayList<NameValuePair>
();
list.add(new BasicNameValuePair("username"
, username));
list.add(new BasicNameValuePair("password"
, password));
httppost.setEntity(new UrlEncodedFormEntity(list, "UTF_8"
));
HttpResponse response =
client.execute(httppost);
int code =
response.getStatusLine().getStatusCode();
if (code == 200
) {
//请求成功
InputStream is =
response.getEntity().getContent();
String result =
StreamTools.readInputStream(is);
return result;
} else {
//请求失败
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
//将InputStream 转为 String
package mydemo.mycom.demo2.utils;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
public class StreamTools {
//InputStream 转为 String
public static String readInputStream(InputStream is)
{
try
{
ByteArrayOutputStream baos =
new ByteArrayOutputStream();
int len =0
;
byte[] buffer =
new byte[1024
];
while((len=is.read(buffer))!=-1
)
{
baos.write(buffer,0
,len);
}
is.close();
baos.close();
byte[] result =
baos.toByteArray();
String temp =
new String(result);
return temp;
}catch (Exception e)
{
e.printStackTrace();
return null;
}
}
}
转载于:https://www.cnblogs.com/zoro-zero/p/4682085.html
相关资源:Android客户端与服务器端交互(okHttp)