Android向node.js编写的服务器发送数据并接收请求

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下

首先时node.js服务器端代码

var http = require("http");
var fs = require("fs");
var queryString = require('querystring');
var url = require('url');
var util = require('util'); 

http.createServer(function (request, response) {
 // 定义了一个post变量,用于暂存请求体的信息
 var post = '';
 request.on('data', function(chunk){
  post += chunk;
 });
// 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
 request.on('end', function(){
  post = queryString.parse(post);
  console.log("请求结束"+post.body);
  response.writeHead(200, {"Content-Type": "text/plain;charset=utf8"});
  response.write("请求成功");
  response.end();
 }); 

}).listen(8888);
console.log("服务器启动"); 

function writeFile(str) {
 fs.writeFile('E:/log.txt', str, function (err) {
  if (err) {
   return console.error(err);
  }
  console.log("数据写入成功!");
 })
}

然后是Android部分

package com.example.hanbo.servertest; 

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; 

import org.json.JSONObject; 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder; 

public class MainActivity extends AppCompatActivity {
private TextView textView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
   textView= (TextView) findViewById(R.id.textView);
  Button button= (Button) findViewById(R.id.button);
  button.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
    textView.setText("开始请求");
    new Thread(new Runnable() {
     @Override
     public void run() {
      HttpURLConnection connection = null;
      URL url = null;
      try {
       url = new URL("http://192.168.1.177:8888");
       connection = (HttpURLConnection) url.openConnection();
       connection.setRequestMethod("POST");
       connection.setConnectTimeout(8000);
       connection.setReadTimeout(8000);
       connection.setRequestProperty("Content-Type","application/json");
       OutputStream outputStream=connection.getOutputStream();
       BufferedWriter requestBody=new BufferedWriter(new OutputStreamWriter(outputStream));
       String str = URLEncoder.encode("抓哇", "UTF-8");
       requestBody.write("name=javaPost&body=1");
       requestBody.flush();
       requestBody.close();
       getResponseJava(connection);
      } catch (MalformedURLException e) {
       e.printStackTrace();
      } catch (ProtocolException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }
    }).start();
   }
  });
 } 

 private void getResponseJava(HttpURLConnection urlConnection) {
   InputStream in = null;
   try {
    in = urlConnection.getInputStream();//响应
   } catch (IOException e) {
    urlConnection.disconnect();
    //textView.setText(e.getMessage());
    return;
   }
   BufferedReader reader = null;
   try {
    reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
   } catch (UnsupportedEncodingException e1) {
    e1.printStackTrace();
   }
   final StringBuilder result = new StringBuilder();
   String tmp = null;
   try {
    while((tmp = reader.readLine()) != null){
     result.append(tmp);
    }
   } catch (IOException e) {
    //textView.setText(e.getMessage());
    return;
   } finally {
    try {
     reader.close();
     urlConnection.disconnect();
    } catch (IOException e) {
    }
   }
   runOnUiThread(new Runnable() {
    @Override
    public void run() {
     textView.setText(result);
    }
   }); 

  }
 }

最后是结果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android使用httpPost向服务器发送请求的方法

    本文实例讲述了Android使用httpPost向服务器发送请求的方法.分享给大家供大家参考,具体如下: import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http

  • Android编程向服务器发送请求时出现中文乱码问题的解决方法

    本文实例讲述了Android编程向服务器发送请求时出现中文乱码问题的解决方法.分享给大家供大家参考,具体如下: 我们在andorid项目中通过get方式向服务器发送请求,其中url参数带有中文,将会产生乱码,乱码产生的原因有两种: 1. 在提交参数时,没有对中文参数进行URL编码 2. Tomcat服务器默认采用的是IOS8859-1编码(不支持中文)得到参数值 解决: 1. 进入android项目,在其中要提交参数的时候,对参数的值进行编码: 复制代码 代码如下: URLEncoder.enc

  • Android发送xml数据给服务器的方法

    本文实例讲述了Android发送xml数据给服务器的方法.分享给大家供大家参考.具体如下: 一.发送xml数据: public static void main(String[] args) throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><videos><video><title>中国</title&

  • Android使用第三方服务器Bmob实现发送短信验证码

    调用Bmob第三方服务器实现短信验证的功能,大致思路如下: 随机产生6位数字,然后调用Bmob的请求短发函数发送者六位数到服务器,然后服务器给指定手机发送这6位验证码,然后感觉用户输入的数字进行判断,如果输入的和发送的相等,则验证成功. 第一步.请求验证码: SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String sendTime = format.format(new Date());

  • Android上传文件到Web服务器 PHP接收文件

    Android上传文件到服务器,通常采用构造http协议的方法,模拟网页POST方法传输文件,服务器端可以采用JavaServlet或者PHP来接收要传输的文件.使用JavaServlet来接收文件的方法比较常见,在这里给大家介绍一个简单的服务器端使用PHP语言来接收文件的例子. 服务器端代码比较简单,接收传输过来的文件: <?php $target_path = "./upload/";//接收文件目录 $target_path = $target_path . basenam

  • 基于Android 错误信息捕获发送至服务器的详解

    程序员最头疼的事情就是bug和debug.这次debug长达20天,搞的我心力交瘁.累,因为Android兼容性,不同手机会有不同的bug出来,而且很难复现,所以就上网找了下类似保存错误log到文件再上传到服务器,现把源码也共享出来.上传至服务器的代码我没加.相信大家都有现成的代码了. 先讲下原理,跟JavaEE的自定义异常捕获一样,将错误一直向上抛,然后在最上层统一处理.这里就可以获得Exception Message,进行保存操作异常捕获类如下: 复制代码 代码如下: /**  * @aut

  • Android向node.js编写的服务器发送数据并接收请求

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 首先时node.js服务器端代码 var http = require("http"); var fs = require("fs"); var queryString = require('querystring'); var url = require('url'); var util = require('util'); http.createServer(function

  • Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法

    本文实例讲述了Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package mysocket    import (      "fmt"      "io"      "net"  )    func MySocketBase() {      var (          host   = "www.apache.org"         

  • Node.js编写CLI的实例详解

    Why Node.js? 常用的用来编写CLI的语言有 python, ruby, perl, Node.js等等. 为什么选取Node.js作为CLI的语言编写工具呢?有三个理由: 对Javascript语言更加熟悉 npm 完善的生态系统 npm OS无关的包管理机制 主要原因还是归咎于npm 完善的生态,目前npm官方有47.5万个三方包可供使用,你可以很方便的使用一些已经编写的很不错的轮子去帮你快速开发.另一方面,你不需要考虑跨平台的安装问题,比如OSX上的homebrew.Debian

  • 零基础之Node.js搭建API服务器的详解

    零基础之Node.js搭建API服务器 这篇文章写给那些Node.js零基础,但希望自己动手实现服务器API的前端开发者,尝试帮大家打开一扇门. HTTP服务器实现原理 HTTP服务器之所以能提供前端使用的API,其实现原理是服务器保持监听计算机的某个端口(通常是80),等待客户端请求,当请求到达并经过一系列处理后,服务器发送响应数据给到前端. 平时大家通过Ajax调用API,即是发起一次请求,经过服务器处理后,得到结果,然后再进行前端处理.如今使用高级编程语言,要实现服务器那部分功能已经变得非

  • node.js实现http服务器与浏览器之间的内容缓存操作示例

    本文实例讲述了node.js实现http服务器与浏览器之间的内容缓存操作.分享给大家供大家参考,具体如下: 一.缓存的作用 1.减少了数据传输,节约流量. 2.减少服务器压力,提高服务器性能. 3.加快客户端加载页面的速度. 二.缓存的分类 1.强制缓存,如果缓存有效,则不需要与服务器发生交互,直接使用缓存. 2.对比缓存,每次都需要与服务器发生交互,对缓存进行比较判断是否可以使用缓存. 三.通过使用 Last-Modified / If-Modified-Since 来进行缓存判断 1.Las

  • 如何用Node.js编写内存效率高的应用程序

    前言 软件应用程序在计算机的主存储器中运行,我们称之为随机存取存储器(RAM).JavaScript,尤其是 Nodejs(服务端js)允许我们为终端用户编写从小型到大型的软件项目.处理程序的内存总是一个棘手的问题,因为糟糕的实现可能会阻塞在给定服务器或系统上运行的所有其他应用程序.C 和 C++程序员确实关心内存管理,因为隐藏在代码的每个角落都有可能出现可怕的内存泄漏.但是对于 JS 开发者来说,你真的有关心过这个问题吗? 由于 JS 开发人员通常在专用的高容量服务器上进行 web 服务器编程

  • 使用Node.js搭建Web服务器

    1. Node.js 创建的第一个应用 1.引入http模块 var http = require("http"); 2. 创建服务器 接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口.函数通过 request, response 参数来接收和响应数据. //1.引入 http 模块 var http=require('http'); //2.用 http 模块创建服务 http.createServer(funct

  • Node.js 搭建后端服务器内置模块( http+url+querystring 的使用)

    目录 前言 一.创建服务器 二.返回响应数据 返回复杂对象数据 返回html文档数据 三.设置响应头和状态码 四.实现路由接口 创建简易路由应用 五.处理URL URL格式转换 URL路径拼接 正确转换文件路径 转换为Options Url对象 六.跨域处理 后端设置跨域 jsonp接口 七.Node作为中间层使用 模拟get请求(转发跨域数据) 模拟post请求(服务器提交) 八.使用Node实现爬虫 前言 这一节我们去学习NodeJs的内置模块:http.url.querystring ,并

  • node+js搭建时间服务器的思路详解

    目录 时间服务器 1.思路准备 1.1思路来源 1.2思路前提要求 1.3技术要求 2.实现 2.1实现准备 2.2搭建前台页面 2.3搭建后台服务器 2.3.1搭建后台 2.3.2后台处理要发送的数据 2.4前端处理获取的数据 2.4.1时间数据 2.4.2天气信息 2.5效果展示 3.总结 时间服务器 时间服务器 1.思路准备 1.1思路来源 这是在我的软件老师给的期末课程设计他要的是通过自己的知识储备,来设计一个前后端数据的展示与发送 1.2思路前提要求 1.搭建一个前台页面,要求简单易懂

  • Nginx设置为Node.js的前端服务器方法总结

    1.安装node.js 首先安装node.js安装所需的软件包,并在启动板上添加可用的nodejs的PPA.之后使用以下命令安装nodejs. $ sudo apt-get install python-software-properties python g++ make $ sudo add-apt-repository ppa:chris-lea/node.js $ sudo apt-get update $ sudo apt-get install nodejs 2.安装nginx 现在

随机推荐