对于很多新手来说,如何 实现 android端与服务器之间的通信还是一个难题。这里我提供一个比较好用的类 package org.crazyit.net; import java.io.*; import java.net.*; import java.util.*; /** * Description: * br/site: a href="http://www.crazyit.org"
对于很多新手来说,如何实现android端与服务器之间的通信还是一个难题。这里我提供一个比较好用的类
<span>package</span> org.crazyit.net;
<span>import</span> java.io.*;
<span>import</span> java.net.*;
<span>import</span> java.util.*;
<span>/**
* Description:
* <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
* <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
*<span> @author</span> Yeeku.H.Lee kongyeeku@163.com
*<span> @version</span> 1.0
*/</span>
<span>public</span> <span><span>class</span> <span>GetPostUtil</span>
{</span>
<span>/**
* 向指定URL发送GET方法的请求
*<span> @param</span> url 发送请求的URL
*<span> @param</span> params 请求参数,请求参数应该是name1=value1&name2=value2的形式。
*<span> @return</span> URL所代表远程资源的响应
*/</span>
<span>public</span> <span>static</span> String <span>sendGet</span>(String url, String params)
{
String result = <span>""</span>;
BufferedReader in = <span>null</span>;
<span>try</span>
{
String urlName = url + <span>"?"</span> + params;
URL realUrl = <span>new</span> URL(urlName);
<span>// 打开和URL之间的连接</span>
URLConnection conn = realUrl.openConnection();
<span>// 设置通用的请求属性</span>
conn.setRequestProperty(<span>"accept"</span>, <span>"*/*"</span>);
conn.setRequestProperty(<span>"connection"</span>, <span>"Keep-Alive"</span>);
conn.setRequestProperty(<span>"user-agent"</span>,
<span>"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"</span>);
<span>// 建立实际的连接</span>
conn.connect(); <span>//①</span>
<span>// 获取所有响应头字段</span>
Map<String, List<String>> map = conn.getHeaderFields();
<span>// 遍历所有的响应头字段</span>
<span>for</span> (String key : map.keySet())
{
System.out.println(key + <span>"--->"</span> + map.get(key));
}
<span>// 定义BufferedReader输入流来读取URL的响应</span>
in = <span>new</span> BufferedReader(
<span>new</span> InputStreamReader(conn.getInputStream()));
String line;
<span>while</span> ((line = in.readLine()) != <span>null</span>)
{
result += <span>"\n"</span> + line;
}
}
<span>catch</span> (Exception e)
{
System.out.println(<span>"发送GET请求出现异常!"</span> + e);
e.printStackTrace();
}
<span>// 使用finally块来关闭输入流</span>
<span>finally</span>
{
<span>try</span>
{
<span>if</span> (in != <span>null</span>)
{
in.close();
}
}
<span>catch</span> (IOException ex)
{
ex.printStackTrace();
}
}
<span>return</span> result;
}
<span>/**
* 向指定URL发送POST方法的请求
*<span> @param</span> url 发送请求的URL
*<span> @param</span> params 请求参数,请求参数应该是name1=value1&name2=value2的形式。
*<span> @return</span> URL所代表远程资源的响应
*/</span>
<span>public</span> <span>static</span> String <span>sendPost</span>(String url, String params)
{
PrintWriter out = <span>null</span>;
BufferedReader in = <span>null</span>;
String result = <span>""</span>;
<span>try</span>
{
URL realUrl = <span>new</span> URL(url);
<span>// 打开和URL之间的连接</span>
URLConnection conn = realUrl.openConnection();
<span>// 设置通用的请求属性</span>
conn.setRequestProperty(<span>"accept"</span>, <span>"*/*"</span>);
conn.setRequestProperty(<span>"connection"</span>, <span>"Keep-Alive"</span>);
conn.setRequestProperty(<span>"user-agent"</span>,
<span>"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"</span>);
<span>// 发送POST请求必须设置如下两行</span>
conn.setDoOutput(<span>true</span>);
conn.setDoInput(<span>true</span>);
<span>// 获取URLConnection对象对应的输出流</span>
out = <span>new</span> PrintWriter(conn.getOutputStream());
<span>// 发送请求参数</span>
out.print(params); <span>//②</span>
<span>// flush输出流的缓冲</span>
out.flush();
<span>// 定义BufferedReader输入流来读取URL的响应</span>
in = <span>new</span> BufferedReader(
<span>new</span> InputStreamReader(conn.getInputStream()));
String line;
<span>while</span> ((line = in.readLine()) != <span>null</span>)
{
result += <span>"\n"</span> + line;
}
}
<span>catch</span> (Exception e)
{
System.out.println(<span>"发送POST请求出现异常!"</span> + e);
e.printStackTrace();
}
<span>// 使用finally块来关闭输出流、输入流</span>
<span>finally</span>
{
<span>try</span>
{
<span>if</span> (out != <span>null</span>)
{
out.close();
}
<span>if</span> (in != <span>null</span>)
{
in.close();
}
}
<span>catch</span> (IOException ex)
{
ex.printStackTrace();
}
}
<span>return</span> result;
}
}
在这里我们简单的做一个android的客户端
这里是layout里的布局文件
<span><?xml version="1.0" encoding="utf-8"?></span>
<span><<span>LinearLayout</span> <span>xmlns:android</span>=<span>"http://schemas.android.com/apk/res/android"</span>
<span>android:orientation</span>=<span>"vertical"</span>
<span>android:layout_width</span>=<span>"fill_parent"</span>
<span>android:layout_height</span>=<span>"fill_parent"</span>
></span>
<span><<span>LinearLayout
</span> <span>android:orientation</span>=<span>"horizontal"</span>
<span>android:layout_width</span>=<span>"fill_parent"</span>
<span>android:layout_height</span>=<span>"wrap_content"</span>
<span>android:gravity</span>=<span>"center"</span>
></span>
<span><<span>Button
</span> <span>android:id</span>=<span>"@+id/get"</span>
<span>android:layout_width</span>=<span>"wrap_content"</span>
<span>android:layout_height</span>=<span>"wrap_content"</span>
<span>android:text</span>=<span>"@string/get"</span>
/></span>
<span><<span>Button
</span> <span>android:id</span>=<span>"@+id/post"</span>
<span>android:layout_width</span>=<span>"wrap_content"</span>
<span>android:layout_height</span>=<span>"wrap_content"</span>
<span>android:text</span>=<span>"@string/post"</span>
/></span>
<span></<span>LinearLayout</span>></span>
<span><<span>TextView</span>
<span>android:id</span>=<span>"@+id/show"</span>
<span>android:layout_width</span>=<span>"fill_parent"</span>
<span>android:layout_height</span>=<span>"fill_parent"</span>
<span>android:gravity</span>=<span>"top"</span>
<span>android:background</span>=<span>"#ffff"</span>
<span>android:textColor</span>=<span>"#f000"</span>
<span>android:textSize</span>=<span>"16dp"</span>
/></span>
<span></<span>LinearLayout</span>></span>
这里我们简单的写一下MainActivity
<span>package</span> org.crazyit.net;
<span>import</span> android.app.Activity;
<span>import</span> android.os.Bundle;
<span>import</span> android.os.Handler;
<span>import</span> android.os.Message;
<span>import</span> android.view.View;
<span>import</span> android.view.View.OnClickListener;
<span>import</span> android.widget.Button;
<span>import</span> android.widget.EditText;
<span>import</span> android.widget.TextView;
<span>/**
* Description:
* <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
* <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
*<span> @author</span> Yeeku.H.Lee kongyeeku@163.com
*<span> @version</span> 1.0
*/</span>
<span>public</span> <span><span>class</span> <span>GetPostMain</span> <span>extends</span> <span>Activity</span>
{</span>
Button get , post;
TextView show;
<span>// 代表服务器响应的字符串</span>
String response;
Handler handler = <span>new</span> Handler()
{
<span>@Override</span>
<span>public</span> <span>void</span> <span>handleMessage</span>(Message msg)
{
<span>if</span>(msg.what == <span>0x123</span>)
{
<span>// 设置show组件显示服务器响应</span>
show.setText(response);
}
}
};
<span>@Override</span>
<span>public</span> <span>void</span> <span>onCreate</span>(Bundle savedInstanceState)
{
<span>super</span>.onCreate(savedInstanceState);
setContentView(R.layout.main);
get = (Button) findViewById(R.id.get);
post = (Button) findViewById(R.id.post);
show = (TextView)findViewById(R.id.show);
get.setOnClickListener(<span>new</span> OnClickListener()
{
<span>@Override</span>
<span>public</span> <span>void</span> <span>onClick</span>(View v)
{
<span>new</span> Thread()
{
<span>@Override</span>
<span>public</span> <span>void</span> <span>run</span>()
{
response = GetPostUtil.sendGet(
<span>"http://192.168.0.102/test/index.php"</span>
, <span>null</span>);
<span>// 发送消息通知UI线程更新UI组件</span>
handler.sendEmptyMessage(<span>0x123</span>);
}
}.start();
}
});
post.setOnClickListener(<span>new</span> OnClickListener()
{
<span>@Override</span>
<span>public</span> <span>void</span> <span>onClick</span>(View v)
{
<span>new</span> Thread()
{
<span>@Override</span>
<span>public</span> <span>void</span> <span>run</span>()
{
response = GetPostUtil.sendPost(
<span>"http://192.168.0.102/test/index.php"</span>
, <span>"name=帅&pass=leegang"</span>);
}
}.start();
<span>// 发送消息通知UI线程更新UI组件</span>
handler.sendEmptyMessage(<span>0x123</span>);
}
});
}
}php测试的部分很简单,只有一个页面
<span><span><?php</span> header(<span>"content-type:text/html;charset=utf-8"</span>); <span>echo</span> <span>"hellow world"</span>; <span>echo</span> <span>$_POST</span>[<span>'name'</span>];</span>
对于很多新手来说,echo的作用像是c语言中的printf一样,事实上echo最重要的作用是把服务器产生的结果返回回来。
Shop7z网上购物系统是基于ASP开发的简单易用的商城建站平台,Shop7z可以满足不同企业、个人的各种网上开店需求!普及版是一套简便易用的商城系统,支持商品图片批量上传、淘宝导入、商品批量修改等实用功能,还支持手机版以及APP的整合,普及版支持4种不同的模板风格,支持支付宝、财付通、网银在线等支付接口,系统还支持新订单邮件通知、多种分类排序、商品归属多分类等功能,支持五种会员价格体系等。
0
立即学习“PHP免费学习笔记(深入)”;
这里是效果图
发送post请求后:
这样简单的说明就完成了。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号