HttpUrlConnection Post请求

  1 package com.example.administrator.myapplication.activity;
  2
  3 import android.os.Bundle;
  4 import android.os.Handler;
  5 import android.os.Message;
  6 import android.support.v7.app.AppCompatActivity;
  7 import android.view.View;
  8 import android.webkit.WebView;
  9 import android.widget.Button;
 10 import android.widget.Toast;
 11
 12 import com.example.administrator.myapplication.R;
 13
 14 import java.io.IOException;
 15 import java.io.InputStream;
 16 import java.io.OutputStream;
 17 import java.net.HttpURLConnection;
 18 import java.net.MalformedURLException;
 19 import java.net.URL;
 20 import java.nio.charset.Charset;
 21
 22 public class HttpUrlConnectionPostActivity extends AppCompatActivity {
 23     WebView webView;
 24     Button postBtn;
 25     @Override
 26     protected void onCreate(Bundle savedInstanceState) {
 27         super.onCreate(savedInstanceState);
 28         setContentView(R.layout.activity_http_url_connection_post);
 29         webView = (WebView) findViewById(R.id.webView);
 30         postBtn = (Button) findViewById(R.id.post);
 31         postBtn.setOnClickListener(new View.OnClickListener() {
 32             @Override
 33             public void onClick(View v) {
 34                 new Thread(new Runnable() {
 35                     @Override
 36                     public void run() {
 37                         HttpUrlConnectionPost();
 38                     }
 39                 }).start();
 40             }
 41         });
 42
 43     }
 44
 45     private void HttpUrlConnectionPost(){
 46         try {
 47             URL url = new URL("https://www.baidu.com/");
 48             HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 49             connection.setConnectTimeout(5*1000);
 50             connection.setReadTimeout(5*1000);
 51             //设置是否向httpURLConnection写入内容
 52             //post请求必须设置为true,因为post请求参数是否写在http正文中
 53             connection.setDoOutput(true);
 54             //设置是否从HttpURLConnection读入内容,默认为true
 55             connection.setDoInput(true);
 56             //设置是否使用缓存,post请求不使用缓存
 57             connection.setUseCaches(false);
 58             //设置请求方法  注意大小写!
 59             connection.setRequestMethod("POST");
 60             //设置长连接
 61             //connection.setRequestProperty("Connection","keep-Alive");
 62             //设置字符集
 63             connection.setRequestProperty("Charset","utf-8");
 64             //connection.setRequestProperty("Content-type","application/x-www-");
 65
 66             //!!!重点部分,设置参数
 67             String params = "page = 1 & num = 10";
 68             OutputStream os = connection.getOutputStream();
 69             os.write(params.getBytes());
 70             os.flush();
 71             os.close();
 72             if (connection.getResponseCode() == HttpURLConnection.HTTP_OK){
 73                 InputStream is = connection.getInputStream();
 74                 StringBuilder sb = new StringBuilder();
 75                 byte[] bytes = new byte[1024];
 76                 int i = 0;
 77                 while ((i = is.read(bytes)) != -1){
 78                     sb.append(new String(bytes,0,i,"utf-8"));
 79                 }
 80                 is.close();
 81
 82                 Message message = handler.obtainMessage(1,sb.toString());
 83                 handler.sendMessage(message);
 84             }
 85         } catch (MalformedURLException e) {
 86             e.printStackTrace();
 87         } catch (IOException e) {
 88             e.printStackTrace();
 89         }
 90     }
 91     Handler handler = new Handler(){
 92         @Override
 93         public void handleMessage(Message msg) {
 94             super.handleMessage(msg);
 95             if (msg != null && msg.what == 1){
 96                 String s = (String) msg.obj;
 97                 String data = new String(s.getBytes(), Charset.forName("utf-8"));
 98                 webView.getSettings().setDefaultTextEncodingName("utf-8");
 99                 webView.getSettings().setJavaScriptEnabled(true);
100                 webView.loadDataWithBaseURL(null,data,"text/html","utf-8",null);
101                 Toast.makeText(getApplication(),"post请求成功!",Toast.LENGTH_SHORT).show();
102             }
103         }
104     };
105 }
 1  <WebView
 2         android:id="@+id/webView"
 3         android:layout_width="match_parent"
 4         android:layout_height="400dp"></WebView>
 5
 6     <Button
 7         android:id="@+id/post"
 8         android:layout_width="match_parent"
 9         android:layout_height="wrap_content"
10         android:text="HttpUrlConnection Post请求" />
时间: 2024-10-24 06:06:45

HttpUrlConnection Post请求的相关文章

HttpUrlConnection Get请求

1 package com.example.administrator.myapplication.activity; 2 3 import android.os.Bundle; 4 import android.os.Handler; 5 import android.os.Message; 6 import android.support.v7.app.AppCompatActivity; 7 import android.view.View; 8 import android.webkit

Java HttpURLConnection模拟请求Rest接口解决中文乱码问题

转自:http://blog.csdn.net/hwj3747/article/details/53635539 在Java使用HttpURLConnection请求rest接口的时候出现了POST请求出现中文乱码的问题,经过把传入的String通过多种方法进行编码发现都解决不了,如下: String teString=new String("你好".getBytes("ISO-8859-1"),"UTF-8"); 网上HttpURLConnec

利用HttpURLConnection发送请求

HttpURLConnection: 每个 HttpURLConnection实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响.如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字 HttpURLConnection的父类是URLConnect

HttpURLConnection 数据请求+Gson解析,Listview展示

import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List; import com.google.gson.Gson; import android.os.Bundle;

Android开发之网络请求通信专题(一):基于HttpURLConnection的请求通信

在Android开发中,网络请求必然是必不可少.一般而言,都是基于http的网络请求.有时候也会有SOCKET请求,这个后续的专题再讲.今天,我们就先讲讲常用的Http请求. http求情自然是遵循http协议的,相关内容请转接:Java学习笔记之Http协议详解 好了,开始今天的正题. 一.基础HTTPURL请求方式 我们先来看一个最简单的例子,通过get方法请求拿到返回值 1.用get方式请求 URL url = new URL( "http://192.168.31.144:10010/M

HttpURLConnection发送请求

每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响.如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字.JAVA使用HttpURLConnection发送POST数据是依靠OutputStream流的形

Android探索之HttpURLConnection网络请求

前言: 最近一直想着学习一下比较好的开源网络框架okhttp,想着学习之前还是先总结一下Android原生提供的网络请求.之前一直在使用HttpClient,但是android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类).所以我们今天主要总结HttpURLConnection的使用. HttpURLConnection介绍: HttpURLConnection是一种多用途.轻量极的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序.

HttpURLConnection网络请求

//创建访问的方法 public String Check_json(){ //创建一个结果字符串 String result=""; //拼接字符串 StringBuffer sb=new StringBuffer(PICTURE_URL); //创建Url try { URL url=new URL(sb.toString()); //打开连接 HttpURLConnection connection; try { connection = (HttpURLConnection)

AsyncTask异步加载和HttpURLConnection网络请求数据

//获得网络数据    private void huodeshuju() { //这里是使用线程,已注释掉        /*new Thread(){            public void run() {                                try {                    URL url=new URL(urlPath);                    HttpURLConnection urlConnection=(HttpURL