`

android网络编程(三)HttpURLConnection POST

阅读更多
效果图:
[img]

[/img]


package com.amaker.http2;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

import org.apache.http.protocol.HTTP;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
/**
 * HttpURLConnection
 * post
 * @author zzl
 *
 */
public class MainActivity extends Activity {
	private TextView tv;
	private Button btn_post;
	private String resultData = "";

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tv = (TextView) findViewById(R.id.tv);
		btn_post = (Button) findViewById(R.id.button);
		btn_post.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				try {
					tv.setText(requestByPost());
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public String requestByPost() throws Exception {
		String httpUrl = "http://open.ifenghui.cn/mobilecms/interface/mobile.action?";
		URL url = null;
		try {
			// 构造一个URL对象
			url = new URL(httpUrl);
		} catch (MalformedURLException e) {
			//    
		}
		if (url != null) {
			try {
				// 使用HttpURLConnection打开连接
				HttpURLConnection urlConn = (HttpURLConnection) url
						.openConnection();
				// 因为这个是post请求,设立需要设置为true
				urlConn.setDoOutput(true);
				urlConn.setDoInput(true);
				// 设置以POST方式
				urlConn.setRequestMethod("POST");
				// Post 请求不能使用缓存
				urlConn.setUseCaches(false);
				urlConn.setInstanceFollowRedirects(true);
				// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的
				urlConn.setRequestProperty("Content-Type",
						"application/x-www-form-urlencoded");
				// 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,
				// 要注意的是connection.getOutputStream会隐含的进行connect。
				urlConn.connect();
				// DataOutputStream流
				DataOutputStream out = new DataOutputStream(urlConn
						.getOutputStream());
				// 要上传的参数:code=888032100100&m=get_coolimages&p=1&filter=all
				// 正文,正文内容其实跟get的URL中'?'后的参数字符串一致
				String content = "code=888032100100&m=get_coolimages&p=1&filter="
						+ URLEncoder.encode("all", "gb2312");
				// 将要上传的内容写入流中
				out.writeBytes(content);
				// 刷新、关闭
				out.flush();
				out.close();

				// 得到读取的内容(流)
				InputStreamReader in = new InputStreamReader(urlConn
						.getInputStream());
				// 为输出创建BufferedReader
				BufferedReader buffer = new BufferedReader(in);
				String inputLine = null;
				// 使用循环来读取获得的数据
				while (((inputLine = buffer.readLine()) != null)) {
					// 我们在每一行后面加上一个"\n"来换行
					resultData += inputLine + "\n";
				}
				// 关闭InputStreamReader
				in.close();
				return resultData;
			} catch (MalformedURLException e) {
				//
			}
		}
		return null;
	}

}


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<ScrollView
		android:id="@+id/sv"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_x="0px"
		android:layout_y="20px">
		<TextView
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"
			android:id="@+id/tv"
			android:text="@string/hello" />
	</ScrollView>
	<Button
		android:text="HttpURLConnection-POST请求"
		android:id="@+id/button"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content" />
</LinearLayout>







AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.amaker.http2"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <!--不要忘记设置网络访问权限-->
    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
</manifest>
  • 大小: 82.8 KB
分享到:
评论

相关推荐

    android网络编程基础

    在Android平台上进行网络编程是开发应用不可或缺的一部分,它允许应用程序与远程服务器进行数据交互,实现如下载、上传、同步等功能。本节将深入探讨Android网络编程的基础知识,主要围绕Java网络编程这一核心概念...

    android网络编程

    2. **网络请求库**:Android SDK提供了HttpURLConnection作为基础的网络请求方式,但实际开发中,开发者更倾向于使用第三方库,如OkHttp和Retrofit,它们提供了更加便捷、高效的网络请求处理能力,支持异步和同步...

    Android网络编程之Http通信

    Android网络编程是移动应用...无论是使用Android SDK自带的HttpURLConnection还是选择一个第三方的库,了解如何正确处理网络请求、如何优化网络通信以及如何提高应用的响应性和安全性,都是移动应用开发者必备的技能。

    android网络编程.pdf

    ### Android网络编程基础知识点 #### 一、网络状态检测 在Android开发中,为了确保应用程序能够根据当前网络环境做出响应,通常需要先检测设备的网络连接状态。这可以通过`ConnectivityManager`类来实现。 1. **...

    android4.0网络编程详解——源码

    在Android 4.0(Ice Cream Sandwich)系统中,网络编程是实现应用程序与远程服务器交互的重要部分。本章将深入探讨如何在Android平台上进行网络操作,包括基础的HTTP请求、数据传输、网络状态监听以及更高级的Socket...

    Android网络编程之客户端服务器端的交互之上传下载解压文件

    在Android平台上进行网络编程,客户端与服务器端的交互是至关重要的。这个主题主要涉及的是如何通过URL方式获取网络数据,实现文件的下载、解压,以及文件的上传功能,同时涵盖了对SD卡文件的浏览。这里我们将深入...

    Android4.0网络编程详解.pdf

    但是,基于标题“Android4.0网络编程详解.pdf”,我们可以详细探讨Android 4.0版本中的网络编程相关知识点。 Android 4.0,代号为“冰激凌三明治”,是Google在2011年发布的一个重要的Android操作系统版本,它整合...

    Android网络编程 王家林

    《Android.4.0网络编程详解》是王家林撰写的一本专著,主要针对Android平台上的网络编程技术进行了深入的探讨。这本书对于开发者来说,是掌握Android应用中网络功能实现的重要参考资料。以下是对该书内容的详细解读...

    android网络编程之通讯源代码

    在Android平台上进行网络编程是开发移动应用不可或缺的一部分。"Android网络编程之通讯源代码"着重于展示如何在Android应用中实现实时的数据交换,这对于构建功能丰富的应用如社交媒体、在线购物、实时聊天等至关...

    Android网络编程.doc

    总的来说,Android网络编程涉及多个方面,包括但不限于使用`HttpURLConnection`进行HTTP通信、处理权限、发送GET和POST请求、以及管理会话状态。理解并熟练运用这些技术,开发者可以构建能够与服务器进行交互的...

    android 网络编程详解代码第7章(android的Socket编程)

    对于更高级的网络编程,如HTTP、HTTPS协议,Android提供了HttpURLConnection、HttpClient(已被弃用)、OkHttp等库。这些库可以帮助我们更容易地处理HTTP请求和响应,例如GET、POST、PUT、DELETE等操作。但是,如果...

    HttpURLConnection和简单的Android服务器交互

    在Android应用开发中,与服务器进行数据交互是常见的需求,HttpURLConnection是Android SDK提供的一种轻量级、低级别的网络通信接口。本主题将深入探讨如何使用HttpURLConnection进行Android与服务器的简单交互,...

    android Handler Thread AsyncTask httpURLConnection

    `HttpURLConnection`相比旧版的`HttpClient`更加轻量级,更符合现代网络编程的需求。通过`openConnection()`方法,我们可以建立到服务器的连接,然后设置请求方法(GET、POST等)、添加请求头、写入请求体,最后通过...

    android 网络编程 客户端完整代码 socket http

    在Android平台上进行网络编程是开发应用不可或缺的一部分,无论是获取服务器数据、实时通信还是文件传输,都需要用到网络技术。本文将深入探讨Android中基于Socket和HTTP的网络编程,包括它们的概念、实现方式以及...

    Android 4.0网络编程详解

    《Android 4.0网络编程详解》一书深入探讨了在Android 4.0系统上进行网络编程的技术细节与实践方法。此版本的Android系统,即Ice Cream Sandwich(冰淇淋三明治),带来了许多网络功能上的改进和新特性,使得开发者...

    Android myFirstIntnet 安卓网络编程的登陆和查询.zip

    - 在Android中,我们通常使用HttpURLConnection或第三方库如Volley、Retrofit或OkHttp来处理网络请求。这些库提供了更高级别的抽象,简化了HTTP通信过程。 2. **Android权限**: - 实现网络功能需要在...

    android http协议编程 post

    Android提供了多种方式来执行HTTP POST请求,包括使用`HttpURLConnection`、`HttpClient`(已废弃)以及第三方库如Volley、OkHttp等。这里我们主要讨论使用`HttpURLConnection`的实现步骤: - 首先,需要创建一个...

    使用HttpURLConnection进行网络编程

    在Android开发中,网络编程是不可或缺的一部分,而`HttpURLConnection`是Java标准库提供的一种用于HTTP通信的API,它在Android SDK中也被广泛使用。相较于旧的`HttpClient`,`HttpURLConnection`更轻量级、更高效,...

Global site tag (gtag.js) - Google Analytics