`

android上的http

阅读更多
android上面有两种通讯代码:
  第一种是用java.net和java.io包来搞
  第二种用apache的开源项目,而android就集成了apache的开源项目,所以推荐使用这个


先说说基于apache的开源项目的:
     
     HttpPost post = new HttpPost(urlStr);
//有一个httpPost对象,这个对象可以绑定参数------setEntity()
比如:可以绑定一个json对象的string

JSONObject holder = new JSONObject();
holder.put("version", "1.1.0");
holder.put("host", "maps.google.com");
StringEntity se = new StringEntity(holder.toString());

或者是一个list
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("s_username", strUID));
nvps.add(new BasicNameValuePair("s_password", strUPW));    
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

把要发送的信息准备好后,可以发送了,这要用到发送的客户端
DefaultHttpClient client = new DefaultHttpClient();

执行发送命令并返回结果
HttpResponse resp = client.execute(post);

得到实例:
HttpEntity entity = resp.getEntity();

获得inputStream
InputStream is = httpEntity.getContent();

Bitmap bitmap = BitmapFactory.decodeStream(is); 
is.close(); 
iv.setImageBitmap(bitmap); 


BufferedReader br =
new BufferedReader(new InputStreamReader(entity.getContent()));
循环拿出string

或者:最好是用apache 的 s =  EntityUtils.toString(entity);

然后说:基于原始的java.io包----
   URL url =new URL(urlStr);    HttpURLConnection con=(HttpURLConnection)url.openConnection();
     /* 允许Input、Output,不使用Cache */
      con.setDoInput(true);
      con.setDoOutput(true);
      con.setUseCaches(false);
      /* 设置传送的method=POST */
      con.setRequestMethod("POST");
      /* setRequestProperty */ 
      con.setRequestProperty("Connection", "Keep-Alive");
      con.setRequestProperty("Charset", "UTF-8");
      con.setRequestProperty("Content-Type",
                         "multipart/form-data;boundary=****");
      con.setRequestProperty("type", "txt");
      con.setRequestProperty("name", "e");
   //相当于设置了一个HttpPost 
   
DataOutputStream ds =
        new DataOutputStream(con.getOutputStream()); //准备输出数据

/* 取得文件的FileInputStream */
      FileInputStream fStream = new FileInputStream(uploadFile);
    
      /* 设置每次写入1024bytes */
      int bufferSize = 1024;
      byte[] buffer = new byte[bufferSize];

      int length = -1;
      /* 从文件读取数据至缓冲区 */
      while((length = fStream.read(buffer)) != -1)
      {
        /* 将资料写入DataOutputStream中 */
        ds.write(buffer, 0, length); //在输出流里面写数据
      }

      /* close streams */
      fStream.close();
      ds.flush();


   





分享到:
评论

相关推荐

    老罗Android视频开发教程 android之http协议编程代码

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。在Android应用中,我们通常使用HTTP协议来获取网页数据、下载文件或者发送用户数据到服务器。 ...

    android端HttpServer的实现

    下这个吧 , https://download.csdn.net/download/dami_lixm/11341046 android端HttpServer的实现,PC端通过浏览器访问android端SD卡上文件的功能

    Android启动http运行vue程序.rar

    Vue应用通常是基于浏览器环境的,因此,要在Android上运行,我们需要一个能够执行JavaScript的环境,比如Cordova或React Native。然而,这个描述提到了"部署在Android本地",这可能意味着使用了一个本地HTTP服务器来...

    Android Servlet WEB http

    Android应用通常使用HttpClient或OkHttp等库发起HTTP请求,与部署在Web服务器上的Servlet进行交互。Servlet接收请求后,处理业务逻辑,然后返回响应给Android客户端。Android客户端可以通过GET或POST方法传递参数,...

    android异步http请求

    在用户界面(UI)线程上执行网络操作会导致应用程序无响应(ANR),因此,Android推荐使用异步HTTP请求来避免阻塞主线程。本篇文章将详细探讨如何在Android中实现异步HTTP请求,主要涉及POST和GET两种方法。 首先,...

    android-26 对应android8

    同时,由于标签中提到了“java apache”,开发者可能还需要关注如何在Android 8.0环境中使用Apache相关的库或服务,尽管Android本身已逐渐转向使用其他库(如OkHttp)来替代Apache HTTP客户端。

    Android之抽屉效果的下拉菜单(上下伸缩和展开)

    xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"&gt; &lt;!-- 主内容视图 --&gt; ...

    onvif协议在Android上的实现

    总的来说,实现ONVIF协议在Android上是一个涉及网络通信、XML解析、媒体处理和SOAP交互的复杂过程。虽然挑战重重,但通过合理的设计和编程,我们可以构建出一款能够接入各种ONVIF设备的高效监控应用。

    android 自定义右上角关闭按钮X的dialog

    &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;!-- 其他Dialog内容 --&gt; android:id="@+id/button_close" android:layout_width="wrap_content" android:layout_height=...

    android 高仿UC浏览器首页上拉面板效果

    代码实现时,可以参考Android官方文档、CSDN博客(http://blog.csdn.net/only1994/article/details/51154070)或其他开发者分享的示例代码。通过不断实践和调试,你可以掌握这个功能的实现,并将其应用到自己的项目...

    老罗android视频开发源码和ppt--android之http协议编程.rar

    在Android应用中,HTTP主要用于发送请求获取服务器上的数据,如JSON或XML格式的数据,或者上传用户数据到服务器。常用的HTTP库有HttpURLConnection、HttpClient(已废弃)、Volley、OkHttp等。 1. ...

    android上RabbitMQ发送简单例子

    在本例中,我们将探讨如何在Android上设置和使用RabbitMQ,以及如何创建一个简单的测试Demo。 首先,我们关注的是"rabbitmq windows服务器安装 文档 - 副本.doc",这是一个关于在Windows环境下安装RabbitMQ的指南。...

    Android自定义SeekBar滑动显示数字

    先来上个效果图: 当滑动时:数值显示,滑动停止时显示数字,使用FrameLayout结合SeekBar。 首先我们看看。 Layout: &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;merge xmlns:android=...

    Android上部署HTTP服务源码

    很多时候需要用到在android系统上部署HTTP,如转码解码、共享本地手机文件等等,这时候可以通过在手机上部署http服务,其他设备访问该服务网址即可。 部署的手机需要开启连接wifi,局域网内其他设备可访问到该网址...

    android android android android android

    "android android android android android"这样的重复提及可能暗示我们将关注Android平台的核心知识点和其在多个层面上的应用。 首先,Android系统架构分为四个主要层次:Linux内核、系统库和运行时、应用程序框架...

    Android Android Android Android Android Android

    4. **程序逻辑**:通过Java或Kotlin编程语言,教授如何编写Android应用的业务逻辑,包括事件处理、数据存储(SQLite数据库)、网络通信(HTTP请求和JSON解析)等。 5. **调试与测试**:学习如何使用Android Studio...

    HttpGet.rar_Android httpget_HttpGet android_android_httpget_http

    HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从Web服务器传输超媒体信息到客户端。GET是HTTP协议中的一种方法,用于请求服务器发送指定资源。 `HttpGet`对象在Android中通常与`HttpClient`或`...

    Android 终端上可以使用的完全版本wget

    在Android上使用完全版本的wget,你可以充分利用这些高级功能,进行更复杂的网络数据抓取和管理。 要将wget的源码编译为适用于Android的完整版本,你需要遵循一定的步骤。`编译方法.txt`文件很可能包含了这些详细...

    android软键盘上添加一个按钮

    &lt;Keyboard xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;Key android:codes="66" android:keyLabel="搜索" /&gt; &lt;!-- 其他按键... --&gt; ``` 步骤3:加载布局 在CustomKeyboard类中加载并设置...

Global site tag (gtag.js) - Google Analytics