android客户端给服务器端发送数据的程序,服务器端显示的值为null

移动开发 码拜 9年前 (2015-11-25) 1211次浏览
客户端:
package com.example.android_http_01;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class RegistActivity extends Activity implements OnClickListener{
private EditText name,age;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
name = (EditText) findViewById(R.id.editText1);
age = (EditText) findViewById(R.id.editText2);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String url = “http://192.168.56.1:8080/web/MyServlet”;
new HttpThread(url, name.getText().toString(), age.getText().toString()).start();
}
}
package com.example.android_http_01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpThread extends Thread {
String url;
String name;
String age;
public HttpThread(String url, String name, String age) {
this.url = url;
this.name = name;
this.age = age;
}
private void doGet() {
url = url + “?name” + name + “&age” + age;
try {
URL httpUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) httpUrl
.openConnection();
conn.setReadTimeout(50000);
conn.setRequestMethod(“GET”);
OutputStream out = conn.getOutputStream();
String content = “?name=” + name + “&age=” + age;
out.write(content.getBytes());
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String line;
StringBuffer sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
}
System.out.println(“result:” + sb.toString());
br.close();
conn.disconnect();
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void doPost() {
try {
URL httpUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) httpUrl
.openConnection();
conn.setReadTimeout(5000);
conn.setRequestMethod(“POST”);
OutputStream out = conn.getOutputStream();
String content = “name” + name + “&age” + age;
out.write(content.getBytes());
BufferedReader br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String lin;
while((lin=br.readLine())!=null){
sb.append(lin);
}
System.out.println(sb.toString());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
// doGet();
doPost();
}
}
服务器端:
package com.imooc.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServlet
*/
@WebServlet(“/MyServlet”)
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter(“name”);
String age = request.getParameter(“age”);
PrintWriter out = response.getWriter();
out.println(“name = “+name+”  age = “+age);
System.out.println(“name=”+name);
System.out.println(“age = “+age);
}
}

解决方案:40分
get操作嘛,你直接请求url + “?name=” + name + “&age=” + age;就行了,不用在write其它数据。
post嘛,你write后,再加个out.flush();把数据发送出去应该就可以了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明android客户端给服务器端发送数据的程序,服务器端显示的值为null
喜欢 (0)
[1034331897@qq.com]
分享 (0)