android 노트 -- 네트워크 에 GET / POST 요청 인자 보 내기
5551 단어 android
private static boolean sendGETRequest (String path,
Map<String, String> params) throws Exception{
// http://192.168.100.91:8080/videoService/login?username=abc&password=123
// StringBuilder
StringBuilder sb = new StringBuilder();
sb.append(path).append("?");
if(params!=null &¶ms.size()!=0){
for (Map.Entry<String, String> entry : params.entrySet()) {
// , URLEncoder
sb.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(), "utf-8"));
sb.append("&");
}
sb.deleteCharAt(sb.length()-1);
}
URL url = new URL(sb.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200){
return true;
}
return false;
}
POST 방법 으로 요청 보 내기
IE 브 라 우 저 에서 POST 방법 으로 먼저 보 냅 니 다. (아래 내용 은 HttpWatch 로 볼 수 있 습 니 다)
POST /videoService/login HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/QVOD, application/QVOD, */*
Referer: http://192.168.100.91:8080/videoService/login.jsp
Accept-Language: zh-CN,en;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6.5; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)
Content - Type: application / x - www - form - urlencoded / / POST 이 설정 을 요청 합 니 다.
Accept-Encoding: gzip, deflate
Host: 192.168.100.91:8080
Content - Length: 26 / / 그리고 발송 내용 길이 도 설정 해 야 합 니 다.
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=7E1435CB8A071D07A430453250348C41
username = asd & password = 1234 / / 여 기 는 요청 체 부분 으로 모두 26 개의 바이트 로 Content - Length 길이 와 같 습 니 다.
private static boolean sendPOSTRequest(String path,
Map<String, String> params) throws Exception{
// StringBuilder
StringBuilder sb = new StringBuilder();
if(params!=null &¶ms.size()!=0){
for (Map.Entry<String, String> entry : params.entrySet()) {
sb.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(), "utf-8"));
sb.append("&");
}
sb.deleteCharAt(sb.length()-1);
}
// entity
// UTF-8 username=%E4%B8%AD%E5%9B%BD&password=123
byte[] entity = sb.toString().getBytes();
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST");
// ,
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", entity.length+"");
OutputStream os = conn.getOutputStream();
// POST
os.write(entity);
if(conn.getResponseCode()==200){
return true;
}
return false;
}
Android 통합 HttpClient 프레임 워 크 로 보 내기
private static boolean sendPOSTRequestHttpClient(String path,
Map<String, String> params) throws Exception{
//
List<NameValuePair> pair = new ArrayList<NameValuePair>();
if(params!=null&& !params.isEmpty()){
for(Map.Entry<String, String> entry:params.entrySet()){
pair.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
}
//
UrlEncodedFormEntity uee = new UrlEncodedFormEntity(pair, "utf-8");
// HttpPost URL
HttpPost post = new HttpPost(path);
//
post.setEntity(uee);
// , POST ,
DefaultHttpClient dhc = new DefaultHttpClient();
HttpResponse response = dhc.execute(post);
if(response.getStatusLine().getStatusCode()==200){
Log.i("http", "httpclient");
return true;
}
return false;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.