android post请求php,Android HttpPost。将数据发送到PHP服务器上的表单

我使用最新的Java Eclipse软件,当我运行此HttpPost代码时,模拟器崩溃。我在我的笔记本电脑上安装了uniserver,因此我将它用作服务器。Android HttpPost。将数据发送到PHP服务器上的表单

此代码应该从以前的类调用编辑文本数据,并且使用HttpPost请求这个数据上传到在线表单上各自的领域。

编辑的文本数据是3个字段:“从”,“To”和“消息”。而且我在服务器上创建的表单也有这些相同的字段来输入数据。 (“http://19x.xx.xx.xxx/androidp2p/testform.php”)其中,19x.xx.xx.xxx是我的(本地主机)IP地址。

我正确地从以前的类拉动的数据和我的代码类似于HttpPost的例子,我在网上找到,但我不知道为什么会崩溃。

我附HttpPost方法,我想看看我是否能得到任何援助。提前感谢你。

方法1:

String myBreadu, myBreadr, myBreadm;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

Bundle myBasket = getIntent().getExtras();

myBreadu = myBasket.getString("keyfrom");

myBreadr = myBasket.getString("keyto");

myBreadm = myBasket.getString("keymsg");

// Create a new HttpClient and Post Header

HttpClient client = new DefaultHttpClient();

String postURL = ("http://19x.xx.xx.xxx/androidp2p/testform.php");

HttpPost post = new HttpPost(postURL);

try {

// Add the data

List pairs = new ArrayList(3);

pairs.add(new BasicNameValuePair("keysendu", myBreadu));

pairs.add(new BasicNameValuePair("keysendr", myBreadr));

pairs.add(new BasicNameValuePair("keysendm", myBreadm));

UrlEncodedFormEntity uefe = new UrlEncodedFormEntity(pairs);

post.setEntity(uefe);

// Execute the HTTP Post Request

HttpResponse response = client.execute(post);

// Convert the response into a String

HttpEntity resEntity = response.getEntity();

if (resEntity != null) {

Log.i("RESPONSE", EntityUtils.toString(resEntity));

}

} catch (UnsupportedEncodingException uee) {

uee.printStackTrace();

} catch (ClientProtocolException cpe) {

cpe.printStackTrace();

} catch (IOException ioe) {

ioe.printStackTrace();

}

}

方法2:

String myBreadu, myBreadr, myBreadm;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

Bundle myBasket = getIntent().getExtras();

myBreadu = myBasket.getString("keyfrom");

myBreadr = myBasket.getString("keyto");

myBreadm = myBasket.getString("keymsg");

String result = null;

// Create a new HttpClient and Post Header

HttpClient client = new DefaultHttpClient();

String postURL = ("http://186.45.107.129/androidp2p/testform.php");

HttpPost post = new HttpPost(postURL);

try {

// Add the data

List pairs = new ArrayList(3);

pairs.add(new BasicNameValuePair("keysendu", myBreadu));

pairs.add(new BasicNameValuePair("keysendr", myBreadr));

pairs.add(new BasicNameValuePair("keysendm", myBreadm));

UrlEncodedFormEntity uefe = new UrlEncodedFormEntity(pairs);

post.setEntity(uefe);

// Execute the HTTP Post Request

HttpResponse response = client.execute(post);

// Convert the response into a String

HttpEntity resEntity = response.getEntity();

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

String l = "";

StringBuilder sb = new StringBuilder();

while ((l = rd.readLine()) != null) {

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

}

rd.close();

String result = sb.toString(); // this line gives an error "Duplicate local variable result"

} catch (UnsupportedEncodingException uee) {

uee.printStackTrace();

} catch (ClientProtocolException cpe) {

cpe.printStackTrace();

} catch (IOException ioe) {

ioe.printStackTrace();

}

}

这是testform.PHP

测试表单

来源:

为:

消息:

我可以补充一点好吗?我不知道我是否应该被直接发送数据到窗体或这个其他PHP页面我有..

通过我在日志中得到错误,当我尝试HttpPost的方式是:

FATAL EXCEPTION: main

03-07 11:36:23.226: E/AndroidRuntime(1490): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.project.keegan/com.project.keegan.SendPostMethod}: android.os.NetworkOnMainThreadException

03-07 11:36:23.226: E/AndroidRuntime(1490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)

03-07 11:36:23.226: E/AndroidRuntime(1490): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)

03-07 11:36:23.226: E/AndroidRuntime(1490): at android.app.ActivityThread.access$600(ActivityThread.java:130)

对不起,如果这是太多的信息家伙。谢谢。

2013-03-07

Keegs

+0

不,信息是永远不嫌多的任何地方调用它! :) –

2013-03-07 16:06:02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值