[Android实例] Android(安卓)实例SOCKET发送HTTP请求
16lz
2021-01-26
目的:客户端用socket连接web服务器发送http请求,访问一个Servlet /service .并接收servlet的相应数据。
我客户端代码可以访问到servlet可是servlet用request.getPrameter(“data”) 取不到请求内容.
请指点:代码如下
java代码:
- public class Client {
- public static void main(String[] arg) {
- Socket socket;
- try {
- socket = new Socket(“10.20.64.203″, 7001);
- OutputStream os = socket.getOutputStream();
- InputStream ins = socket.getInputStream();
- String data= getXmlString();
- StringBuffer sb = new StringBuffer();
- sb.append(“POST /service HTTP/1.1\r\n”);// 注意\r\n为回车换行
- sb.append(“Accept-Language: zh-cn\r\n”);
- sb.append(“Connection: Keep-Alive\r\n”);
- sb.append(“Host:localhost\r\n”);
- sb.append(“Content-Length:11\r\n”);
- sb.append(“\r\n”);
- sb.append(“data=abc\r\n”);
- sb.append(“\r\n”);
-
- // 接收Web服务器返回HTTP响应包
- os.write(sb.toString().getBytes());
- os.flush();
- byte[] b = new byte[1000];
- ins.read(b); //读取http头
- InputStreamReader ireader = new InputStreamReader(ins);
- java.io.BufferedReader reader = new java.io.BufferedReader(ireader);
- String s = reader.readLine(); //读取内容
- System.out.println(“response:”+s);
- System.out.println(reader.readLine());
- System.out.println(reader.readLine());
- System.out.println(reader.readLine());
- System.out.println(reader.readLine());
- System.out.println(reader.readLine());
- System.out.println(reader.readLine());
-
- } catch (UnknownHostException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
更多相关文章
- 仿QQ设置字体大小自定义SeekBar
- Android支持AMDGPU显卡
- OkHttpClient加载图片给DisposableObserver,CompositeDisposable
- 解决“Cannot merge new index 67208 into a non-jumbo instruct
- android BroadcastReceiver相关
- android实现桌面icon未读信息图标(类似与iPhone的badge)
- Android中Activity布局及其加载
- Android的sdk下载问题
- Android中半透明Activity效果另法