类 : java.net.HttpURLConnection;
1. GET
package com.yarin.android.Examples_08_01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
//以Get方式上传参数
public class Activity03 extends Activity
{
private final String DEBUG_TAG = "Activity03";
/** Called when the activity is first created. */
@SuppressWarnings("unused")
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.http);
TextView mTextView = (TextView)this.findViewById(R.id.TextView_HTTP);
//http地址"?par=abcdefg"是我们上传的参数
String httpUrl = "http://192.168.1.110:8080/httpget.jsp?par=abcdefg";
//获得的数据
String resultData = "";
URL url = null;
try
{
//构造一个URL对象
url = new URL(httpUrl);
}
catch (MalformedURLException e)
{
Log.e(DEBUG_TAG, "MalformedURLException");
}
if (url != null)
{
try
{
// 使用HttpURLConnection打开连接
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
//得到读取的内容(流)
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();
//关闭http连接
urlConn.disconnect();
//设置显示取得的内容
if ( resultData != null )
{
mTextView.setText(resultData);
}
else
{
mTextView.setText("读取的内容为NULL");
}
}
catch (IOException e)
{
Log.e(DEBUG_TAG, "IOException");
}
}
else
{
Log.e(DEBUG_TAG, "Url NULL");
}
Button button_Back = (Button) findViewById(R.id.Button_Back);
/* 监听button的事件信息 */
button_Back.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
/* 新建一个Intent对象 */
Intent intent = new Intent();
/* 指定intent要启动的类 */
intent.setClass(Activity03.this, Activity01.class);
/* 启动一个新的Activity */
startActivity(intent);
/* 关闭当前的Activity */
Activity03.this.finish();
}
});
}
}
2.POST
package com.yarin.android.Examples_08_01;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
//以post方式上传参数
public class Activity04 extends Activity
{
private final String DEBUG_TAG = "Activity04";
/** Called when the activity is first created. */
@SuppressWarnings("unused")
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.http);
TextView mTextView = (TextView)this.findViewById(R.id.TextView_HTTP);
//http地址"?par=abcdefg"是我们上传的参数
String httpUrl = "http://192.168.1.110:8080/httpget.jsp";
//获得的数据
String resultData = "";
URL url = null;
try
{
//构造一个URL对象
url = new URL(httpUrl);
}
catch (MalformedURLException e)
{
Log.e(DEBUG_TAG, "MalformedURLException");
}
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());
//要上传的参数
String content = "par=" + URLEncoder.encode("ABCDEFG", "gb2312");
//将要上传的内容写入流中
out.writeBytes(content);
//刷新、关闭
out.flush();
out.close();
//获取数据
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String inputLine = null;
//使用循环来读取获得的数据
while (((inputLine = reader.readLine()) != null))
{
//我们在每一行后面加上一个"\n"来换行
resultData += inputLine + "\n";
}
reader.close();
//关闭http连接
urlConn.disconnect();
//设置显示取得的内容
if ( resultData != null )
{
mTextView.setText(resultData);
} else
mTextView.setText("读取的内容为NULL");
}
catch (IOException e)
{
Log.e(DEBUG_TAG, "IOException");
}
}
else
{
Log.e(DEBUG_TAG, "Url NULL");
}
Button button_Back = (Button) findViewById(R.id.Button_Back);
/* 监听button的事件信息 */
button_Back.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
/* 新建一个Intent对象 */
Intent intent = new Intent();
/* 指定intent要启动的类 */
intent.setClass(Activity04.this, Activity01.class);
/* 启动一个新的Activity */
startActivity(intent);
/* 关闭当前的Activity */
Activity04.this.finish();
}
});
}
}
HttpURLConnection相比之下,POST比get多了HttpURLConnection对象的设置和参数上传写入OutputStream流.
分享到:
相关推荐
在Android开发中,HTTP请求是应用与服务器交互的重要方式之一,`HttpURLConnection`是Java标准库提供的一种HTTP客户端API,适合用于发送POST请求。在这个"Android httpUrlConnection Post方式访问网络简单demo"中,...
在Android开发中,HTTP协议是应用层中广泛使用的通信协议之一,用于客户端(如手机应用)与服务器之间的数据交换。本篇文章将详细讲解如何在Android中利用`HttpURLConnection`类通过GET方法访问HTTP资源。 首先,`...
总结来说,Android中的HttpUrlConnection是处理网络请求的重要工具,它可以方便地进行JSON数据的POST和GET操作。通过理解HTTP请求方法、设置请求头、处理响应以及解析JSON,开发者可以有效地与服务器交换数据。在...
在Android开发中,网络通信是应用必不可少的一部分,`HttpURLConnection`是Java标准库提供的一种用于HTTP请求的API,它在Android SDK中也被广泛使用。本篇文章将深入探讨如何在Android中简单使用`HttpURLConnection`...
在Android开发中,POST和GET是两种主要的HTTP请求方法,用于从服务器获取数据或向服务器发送数据。...通过理解这些基本概念和实践,开发者可以更好地在Android应用中利用POST和GET方法与服务器进行数据交互。
本文将详细介绍如何使用HttpURLConnection在Android中进行GET请求JSON数据、POST提交JSON数据以及下载图片。 1. GET请求JSON数据 GET请求是最基本的HTTP方法,用于从服务器获取资源。以下是一个使用...
在Android开发中,Java的HttpURLConnection是用于网络通信的一个基础组件,它提供了HTTP协议的低级别接口,可以用来执行GET、POST以及其他HTTP方法。在这个场景下,我们将详细探讨如何使用Java原生的...
本篇将详细讲解Android中如何使用HTTPS进行GET和POST请求。 首先,HTTPS基于SSL/TLS协议,提供加密处理、服务器身份验证和消息完整性检查等功能。在Android中,我们通常会用到HttpURLConnection或者第三方库如...
在Android开发中,HTTP协议是应用层网络通信的...总结,本文介绍了使用`HttpURLConnection`在Android中发送GET和POST请求的基本步骤,以及需要注意的关键点。理解这些概念有助于开发者在构建网络功能时做出明智的选择。
在Android开发中,联网请求是应用与服务器交互的基础,用于获取或发送数据。常见的联网请求方式有两种:HttpURLConnection和HttpClient。下面将详细讲解这两种方法,以及它们如何处理POST和GET请求。 **...
在Android应用开发中,与服务器进行数据交互是常见的需求,主要通过HTTP协议的GET和POST方法来实现。本文将详细讲解如何在Android端使用GET和POST方法提交数据到服务器,并结合传智播客张泽华Android视频54-57中的...
以上就是使用HttpURLConnection在Android应用中访问网络的基本步骤和关键知识点,开发者可以根据实际需求进行调整和扩展,实现更复杂的功能,如上传文件、处理Cookie等。在实际项目中,还可以考虑使用第三方库,如...
使用HTTPURLConnection,开发者可以设置请求方法(如GET或POST),添加请求头,以及设置超时等参数。例如,以下代码展示了如何发送一个GET请求: ```java URL url = new URL("http://example.com/image.jpg"); ...
使用HTTPUrlConnection进行POST请求的步骤与GET类似,但需要额外处理请求体: 1. 创建URL对象和HttpURLConnection实例。 2. 设置请求方法:调用setRequestMethod("POST")。 3. 设置允许输出:调用setDoOutput(true)...
在Android 6.0(API级别23)之前,它是官方推荐的网络通信方式,但在更高版本中已被弃用,建议使用`HttpURLConnection`或第三方库如OkHttp。 - 使用HttpClient的好处包括支持各种HTTP方法,易用的接口,以及对...
在Android开发中,异步处理是非常重要的一环,特别是在与服务器进行数据交互时,为了保持UI线程的流畅性,避免出现"应用无响应"(ANR)的情况,开发者通常会使用`AsyncTask`。本例子是关于如何将`AsyncTask`与`...
在Android应用开发中,与服务器进行数据交互是常见的需求,HttpURLConnection是Android SDK提供的一种轻量级、低级别的网络通信接口。本主题将深入探讨如何使用HttpURLConnection进行Android与服务器的简单交互,...
在Android开发中,网络通信是应用与服务器交互的重要方式,主要分为GET和POST两种请求方法。本篇文章将详细解析这两种方法以及如何在Android中实现它们。 1. GET方法: GET是最常见的HTTP请求方法,用于从服务器...
HttpURLConnection是Java标准库中的一个类,它允许Android应用程序与HTTP服务器进行通信,执行GET、POST等请求。下面我们将详细讨论如何利用HttpURLConnection上传图片。 首先,我们需要获取到用户选择或拍摄的图片...