2025年3月21日 星期五 甲辰(龙)年 月廿 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

Android通过POST方式获取互联网资源

时间:12-02来源:作者:点击数:132

上一节教程我们演示了 Android 使用 GET 获取网络资源的运行效果和实例,下面实例 POSTDemo 中演示了使用 POST 方式访问 getMessage.jsp 的过程,运行效果如图 1 所示。 

实例 POSTDemo 的运行效果
图 1  实例POSTDemo的运行效果

实例 POSTDemo 中 main.xml 的具体实现代码如下:

  • <?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">
  • <Button
  • android:id="@+id/Button_POST"
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"
  • android:text="@string/button_name"/>
  • <TextView
  • android:id="@+id/TextView_POST"
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"/>
  • </LinearLayout>

实例 POSTDemo 中 AndroidManifest.xml 的具体实现代码如下:

  • <?xml version="l.0" encoding="utf-8"?>
  • <manifest xmlns:android="http;//schemas.android.com/apk/res/android"
  • package="com.android.activity"
  • android:versionCode="1"
  • android:versionName="1.0">
  • <uses-sdk android:minSdkVersion="4" />
  • <uses-permission android:name="android.permission.INTERNET" />
  • <application android:icon="@drawable/ic_launcher" 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>
  • </manifest>

其中:

<uses-permission android:name="android.permission.INTERNET" />

设置可以访问网络的权限。

实例 POSTDemo 中 MainActivity.java 的具体实现代码如下:

  • package introdction.android.POSTDemo;
  • 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.os.Bundle;
  • import android.view.View;
  • import android.view.View.OnClickListener;
  • import android.widPOST.Button;
  • import android.widPOST.TextView;
  • public class MainActivity extends Activity {
  • private TextView textView_POST;
  • @Override
  • public void onCreate (Bundle savedInstanceState) {
  • super.onCreate (savedInstanceState);
  • setContentView (R.layout.main);
  • textView_POST= (TextView) findViewById (R.id.TextView_POST)
  • Button button_POST= (Button) findViewById (R.id.Button_POST);
  • button_POST.setOnClickListener (new OnClickListener() {
  • public void onClick (View v) {
  • String httpUrl="http:// 175.168.35.198:8080/android/POSTMessage.jsp?message=Helloworld";
  • String resultData ="";
  • URL url=null;
  • try {
  • url=new URL (httpUrl) ;
  • } catch (MalformedURLException e) {
  • System.out.println (e.POSTMessage());
  • }
  • if (url !=null) {
  • try {
  • HttpURLConnection urlConn= (HttpURLConnection) url .openConnection();
  • urlConn.setDoOutput(true);
  • urlConn.setDoInput(true);
  • urlConn.setRequestMethod("POST");
  • urlConn.setUseCaches(false);
  • urlConn.setInstanceFollowRedirects(true);
  • urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded")
  • urlConn.connect();
  • DataOutputStream out = new DataOutputStream(urlConn.getOutputStream());
  • String content="message="+URLEncoder.encode("HelloWorld","gb2312");
  • out.writeBytes(content);
  • out.flush();
  • out.close();
  • BufferedReader buffer=new BufferedReader (new InputStreamReader(urlConn.getInputStream()));
  • String inputLine=null;
  • while (((inputLine=buffer.readLine()) !=null)) {
  • resultData+=inputLine+"\n";
  • }
  • reader.close ();
  • urlConn.disconnect();
  • if (resultData !=null) {
  • textView_POST.setText (resultData) ;
  • } else {
  • textView_POST.setText ("Sorry,the content is null") ;
  • }
  • } catch (IOException e) {
  • textView_POST.setText (e.getMessage () ) ;
  • }
  • } else {
  • textView_POST.setText ("url is null") ;
  • }
  • }
  • });
  • }
  • }

其中:

String httpUrl="http:// 175.168.35.198:8080/android/getMessage.jsp"

设置要访问的 URL 地址,urlConn.setRequestMethod("POST") 设置访问方式为 POST 方式。

String content="message="+URLEncoder.encode("HelloWorld", "gb2312");
out.writeBytes(content);

将要传递的 message 的值传递给服务器。此外,Android 开发包还提供了 org.apache.http.client.methods.HttpGet 和 org.apache.http.client.methods.HttpPost 两个类,分别用于处理 GET 和 POST 网络访问方式。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门