最近在搞安卓,跟Server溝通是一定要的,這範例很簡單,就是我在Android 上面,透過POST 的方式傳資料給

Server ,則Server 收到值後直接回傳, Server side 是用asp.net C# 寫作..

現在直接來看Code

Server 端(C#):

建立一個echo.aspx 在aspx 得部分除了第一行全部都拿掉

只剩下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="echo.aspx.cs" Inherits="EchoService.echo" %>
再來就是C# 得部分:

using System;
namespace EchoService
{

  public partial class echo : System.Web.UI.Page
     {

    protected void Page_Load(object sender, EventArgs e)
      {

         if (Request.Form.Count == 0)
        {  
          Response.Write("{}");
        }else
        {
          Response.Write(Request.Form[0]);

}
      }
    }
 }

 
再來就是Android 的部分:

//傳送資料回Server //urlPath: 後端網址 //data: 資料
public static String SendHttpPost(String urlPath, String data) {
  try {
    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpPost httpPostRequest = new HttpPost(urlPath);
    httpPostRequest.setEntity(new StringEntity(data, HTTP.UTF_8));
    httpPostRequest.setHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
    httpPostRequest.setHeader("Accept-Encoding", "gzip");
    HttpResponse response = (HttpResponse) httpclient
          .execute(httpPostRequest);
    HttpEntity entity = response.getEntity();
    if (entity != null) {

      InputStream instream = entity.getContent();
      Header contentEncoding = response
            .getFirstHeader("Content-Encoding");
      if (contentEncoding != null
          && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
        instream = new GZIPInputStream(instream);
       }
    String resultString = convertStreamToString(instream);
    return resultString;

    }
  } catch (Exception e) {
    Log.e("WebUtil", e.toString());
  }

  return "";
}

private static String convertStreamToString(InputStream is) {

/*

* To convert the InputStream to String we use the

* BufferedReader.readLine() method. We iterate until the BufferedReader

* return null which means there's no more data to read. Each line will

* appended to a StringBuilder and returned as String.

*

* (c) public domain:

* http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/

* 11/a-simple-restful-client-at-android/

*/

BufferedReader reader = new BufferedReader(new InputStreamReader(is));

StringBuilder sb = new StringBuilder();
String line = null;

try {

  while ((line = reader.readLine()) != null) {

     sb.append(line + "\n");

  }

} catch (IOException e) {

  e.printStackTrace();

} finally {

  try { is.close();

} catch (IOException e) {

    e.printStackTrace();

}

}

return sb.toString();

}

呼叫方式:

String res = SendHttpPost( "http://swap.no2don.com/echo.aspx", "{name:'許當麻',first_name:'當麻',last_name:'許'}");

結果:

注意事項:
1.其中傳輸我都是透過格式為UTF-8
2.網路的Permission 記得打開  需要在 AndroidManifest.xml 中加入

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

3.還有一個地方需再Activity 中加入:

// AllowPolicy StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);

[C#] 與Android共舞–手機post資料給Server (转帖)的更多相关文章

  1. [C#] 與Android共舞–透過GET方式傳資料給Server(含解決中文編碼問題) (转帖)

    上一篇文章分享了透過POST 方式傳資料回Server,這一篇來談談有關於透過GET的方式傳遞 首先,如我預期的一樣,透過網址傳遞,會產生編碼問題,這邊我就順代解掉,希望有碰到的人 可以不用為此煩惱. ...

  2. 手機 停充的種類 與 量測 power consumption 功率 使用 bq25896 bq25890

    Precondition : 配有 power path 功能的 BQ2589 手機. 接上 pc usb port. Origin : 今天有同事問我, 手機是否可以在接上 pc usb port ...

  3. 榮耀6 Plus將是一部沒有對手的手機

    華為榮耀官方微博發佈消息正式確定了年度旗艦新品將命名為榮耀6 Plus,據稱,該機將是“2014年度最最旗艦手機”,並將集“科學與美學一身”.“探索幾何與視覺極限”,同時,官方微博還不低調地宣稱該機將 ...

  4. iPhone6手機產品提交了進網申請

    近期,海外投資蘋果公司為iPhone6手機產品提交了進網申請,經電信設備進網檢測機構測試和我部審查,相關產品滿足進網管理要求.根據<電信條例>有關規定,我部依法定程式在法定時限內為蘋果公司 ...

  5. 透過手機 App 在 OpenELEC(XBMC)中輸入中文

    這裡介紹如何使用手機 App 在沒有中文輸入法的 OpenELEC(XBMC)中輸入中文字. OpenELEC(XBMC)雖然有內建中文語系,但是卻沒有中文的輸入法,沒辦法直接輸入中文字,這對於一般家 ...

  6. “双十二”年终盛典,Guitar Pro邀您一起倾情共舞

    躲过了双十一,躲不过双十二,隐约昨天还是双十一,马上双十二又叕来了,弱弱的问一句“你们的手长粗了来了吗?”在这即将结束的年终盛典里,各商家又将如“双十一”般纷纷使出浑身解数,作为吉他最佳拍档的编曲软件 ...

  7. 為什麼我的手機連Wi-Fi速度總是卡在75Mbps?Wi-Fi速度解惑~帶你一次看懂!

    正文字体大小:大 中 小 為什麼我的手機連Wi-Fi速度總是卡在75Mbps?Wi-Fi速度解惑-帶你一次看懂! (2017-02-21 10:57:48) 转载▼ 标签: wi-fi速度 手機wi- ...

  8. Palm是一家英國智能手機公司

    據TCL方面介紹,本次收購只涉及品牌,不會涉及員工和其他資產.被收購之後,Palm仍將繼續把總部設於美國加州矽谷,以發揮該區域所獨有的先進技術和人才的優勢. TCL通訊CEO郭愛平表示TCL將把Pal ...

  9. [转] 与调试器共舞 - LLDB 的华尔兹

    你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函数调用来简化程序的行为? NSNu ...

随机推荐

  1. VerbalExpressions ——另类正则表达式

    对于文本处理来说,正则表达式无疑是一个非常强大的工具.但是编写和阅读正则表达式往往就不是那么一件非常愉快的事情了.本文在这里介绍另一种另类的正则表达式——VerbalExpressions,它采用函数 ...

  2. C++连接mysql的两种方式(ADO连接和mysql api连接)

    一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上)  ...

  3. 【227】◀▶ IDL 其他常用函数

    参考:Programming and Control Routines —— 编程和控制函数 01   N_ELEMENTS 表达式或者变量的元素个数. 02   DEFSYSV 定义系统变量. 03 ...

  4. 《算法设计手册》面试题解答 第五章:图的遍历 附:DFS应用之找挂接点

    第五章面试题解答 5-31. DFS和BFS使用了哪些数据结构? 解析: 其实刚读完这一章,我一开始想到的是用邻接表来表示图,但其实用邻接矩阵也能实现啊?后来才发现应该回答,BFS用队列实现:DFS可 ...

  5. 循序渐进Python3(六) -- 初识内置变量、反射、递归

    #python用下划线作为变量前缀和后缀指定特殊变量.稍后我们会发现,   #对于程序来说,其中的有些变量是非常有用的,而其他的则是未知或者无用的.   #我们总结一下Python中下划线的特殊用法  ...

  6. javascript中的innerHTML是什么意思,怎么个用法?

    innerHTML在JS是双向功能:获取对象的内容 或 向对象插入内容:如:<div id="aa">这是内容</div> ,我们可以通过 document ...

  7. 反向代理及如何获得原始IP

    在现代网站架构中,scalability 已经不再是可有可无的质量属性,而是决定着网站的生死攸关,所以稍微上规模的站点都不会只有一个web server,让internet clients 直接与其交 ...

  8. navicat for mysql

    下载地址:https://www.navicat.com/cht/download 详情:http://baike.baidu.com/link?url=zo3CUg3HC5XUHkz4YqXO6Em ...

  9. Windows 下, SetTimer 定时器的研究.

    一直很困惑一个问题: 我设置了一个10秒的定时器,可是被调用的函数要花费30秒, 那待调用的函数第二次是什么时候调用的呢? 20秒, 40秒, 还是50秒呢.... 所以我进行了实验. 我写了一个类  ...

  10. Sublime text 3安装svn插件

    这几天在研究sublime text 3的使用,感觉还不错,现在想让他能够支持svn,所以就写一下怎么安装svn插件吧~ 首先先说一下这个官方的插件网站 点我进入~ 进入之后,最上边的第一个就是点击安 ...