Android与服务器网站交互(一)
来源:互联网 发布:linux 查看进程的流量 编辑:程序博客网 时间:2024/05/17 22:21
以获取城市天气信息为例
网络链接配置部分——通用
<span style="font-size:18px;">import java.io.IOException;import java.util.concurrent.TimeoutException;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.util.EntityUtils;import android.content.Context;import android.widget.Toast;public class HttpUtil{private Context context;public HttpUtil(Context context) {this.context = context;}public String getWebContent(String url) throws TimeoutException {//创建一个http请求对象 HttpGet request=new HttpGet(url);//创建HttpParams以用来设置HTTP参数HttpParams httpParams=new BasicHttpParams();//设置连接超时或响应超时HttpConnectionParams.setConnectionTimeout(httpParams, 3000);//3s链接超时HttpConnectionParams.setSoTimeout(httpParams, 3000);//3s响应超时//创建一个网络访问处理对象△ HttpClient httpClient=new DefaultHttpClient(httpParams);//执行请求参数项 try {HttpResponse httpResponse=httpClient.execute(request); //判断是否请求成功 if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){return EntityUtils.toString(httpResponse.getEntity());}else{Toast.makeText(context, "网络访问失败,请稍后再试", Toast.LENGTH_SHORT).show();}}catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();Toast.makeText(context, "网络访问异常,请稍后再试", Toast.LENGTH_SHORT).show();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();Toast.makeText(context, "网络访问异常,请稍后再试", Toast.LENGTH_SHORT).show();}//释放网络连接资源 finally{httpClient.getConnectionManager().shutdown();}return null;}}</span>
通过网址获取信息——具体情况具体分析
<span style="font-size:18px;">import java.io.UnsupportedEncodingException;import java.util.concurrent.TimeoutException;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;import android.os.StrictMode;import android.util.Log;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();StrictMode.setThreadPolicy(policy);super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);HttpUtil httpUtil=new HttpUtil(this);try {String content = null;try {content = new String(httpUtil.getWebContent("http://www.weather.com.cn/data/sk/101030300.html").getBytes("utf-8"),"UTF-8");//同时设置string编码} catch (UnsupportedEncodingException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}try {JSONObject result = new JSONObject( content);JSONObject weatherinfo = new JSONObject(result.getString("weatherinfo")); Log.e("获取的信息", content);Log.e("获取的信息", weatherinfo.getString("cityid"));} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (TimeoutException e) {// TODO Auto-generated catch blockToast.makeText(getApplicationContext(), "网络链接超时,请检查你的网络", Toast.LENGTH_SHORT).show();e.printStackTrace();}}}</span>
0 0
- Android与服务器网站交互(一)
- Android程序与服务器交互(一)
- Android开发一客户端与服务器交互(登陆功能)
- Android开发一客户端与服务器交互(登陆功能)
- android 与服务器交互
- Android与服务器交互
- Android与服务器交互
- Android程序与服务器交互(二)
- android客户端与php服务器的json数据简单交互(一)
- android客户端与php服务器的json数据简单交互(一)
- Android端通过Okhttp与PHP服务器进行交互并实现文件上传下载(一)
- android客户端 与服务器交互
- Android与(Servlet)服务器交互
- Android与PHP服务器交互
- android与webservice服务器交互
- Android 客户端与服务器交互
- Android与PHP服务器交互
- Android与PHP服务器交互
- css之inline-block
- android opencv 环境搭建
- 兔子问题
- Linux(CentOS) SVN服务器搭建+同步更新+多版本库+开机启动
- Jenkins入门系列之——02第二章 Jenkins安装与配置
- Android与服务器网站交互(一)
- SpringMVC利用AOP实现自定义注解记录日志
- oracle----------查询
- iOS UINavigationController的iOS 7的手势滑动返回功能
- 【Android】ListView与Button的共存问题解决
- navigation中左滑pop的三种方法
- MFC中CDC与HDC的区别以及二者之间的转换
- Android入门第二课:搭建安卓开发环境
- 选择排序