安卓:HttpClient的POST

编程入门 行业动态 更新时间:2024-10-26 13:35:14
本文介绍了安卓:HttpClient的POST - 无法将数据发送到服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

您好,我尝试使用HttpClient的将数据发送到服务器。

Hello I am trying to send data to server using httpclient.

下面是我的code

public class MainActivity extends Activity implements OnClickListener { private String TAG; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button press = (Button) findViewById(R.id.button1); press.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: String usrName = ((EditText) findViewById(R.id.usrName)).getText() .toString().trim(); String age = ((EditText) findViewById(R.id.age)).getText() .toString().trim(); Toast.makeText(getApplicationContext(), "username:: " + usrName + "---Age::" + age, Toast.LENGTH_SHORT).show(); // Create a new HttpClient and Post Header HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("192.168.1.40"); String resp = null; try { // create data to POST List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>( 5); nameValuePairs.add(new BasicNameValuePair("UserName", usrName)); nameValuePairs.add(new BasicNameValuePair("Age", age)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost); resp = response.toString(); } catch (ClientProtocolException e) { System.out.println("---" + e.getMessage()); } catch (IOException e1) { System.out.println("---" + e1.getMessage()); } Log.i(TAG, "RTT inside post-data: " + time_passed); Log.i(TAG, resp.toString()); break; case R.id.send: default: break; } } }

我得到在logcat的这个错误

I am getting this error in logcat

06-07 18:23:45.650: E/AndroidRuntime(2387): FATAL EXCEPTION: main 06-07 18:23:45.650: E/AndroidRuntime(2387): android.os.NetworkOnMainThreadException 06-07 18:23:45.650: E/AndroidRuntime(2387): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099) 06-07 18:23:45.650: E/AndroidRuntime(2387): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84) 06-07 18:23:45.650: E/AndroidRuntime(2387): at libcore.io.IoBridge.connectErrno(IoBridge.java:127) 06-07 18:23:45.650: E/AndroidRuntime(2387): at libcore.io.IoBridge.connect(IoBridge.java:112) 06-07 18:23:45.650: E/AndroidRuntime(2387): at java.PlainSocketImpl.connect(PlainSocketImpl.java:192) 06-07 18:23:45.650: E/AndroidRuntime(2387): at java.PlainSocketImpl.connect(PlainSocketImpl.java:459) 06-07 18:23:45.650: E/AndroidRuntime(2387): at java.Socket.connect(Socket.java:842) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 06-07 18:23:45.650: E/AndroidRuntime(2387): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 06-07 18:23:45.650: E/AndroidRuntime(2387): at com.sakeesoft.android.MainActivity.onClick(MainActivity.java:104) 06-07 18:23:45.650: E/AndroidRuntime(2387): at android.view.View.performClick(View.java:3511) 06-07 18:23:45.650: E/AndroidRuntime(2387): at android.view.View$PerformClick.run(View.java:14105) 06-07 18:23:45.650: E/AndroidRuntime(2387): at android.os.Handler.handleCallback(Handler.java:605) 06-07 18:23:45.650: E/AndroidRuntime(2387): at android.os.Handler.dispatchMessage(Handler.java:92) 06-07 18:23:45.650: E/AndroidRuntime(2387): at android.os.Looper.loop(Looper.java:137) 06-07 18:23:45.650: E/AndroidRuntime(2387): at android.app.ActivityThread.main(ActivityThread.java:4424) 06-07 18:23:45.650: E/AndroidRuntime(2387): at java.lang.reflect.Method.invokeNative(Native Method) 06-07 18:23:45.650: E/AndroidRuntime(2387): at java.lang.reflect.Method.invoke(Method.java:511) 06-07 18:23:45.650: E/AndroidRuntime(2387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 06-07 18:23:45.650: E/AndroidRuntime(2387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 06-07 18:23:45.650: E/AndroidRuntime(2387): at dalvik.system.NativeStart.main(Native Method)

请帮助我知道用什么样的HTTPClient拨错。谢谢..

please help me know what worng with HTTPClient. Thanks..

推荐答案

当应用程序试图在它的主线程执行网络操作时引发的异常。

The exception that is thrown when an application attempts to perform a networking operation on its main thread.

使用的AsyncTask或Thread类的网络电话。

Use asynctask or Thread class for network calls.

更多推荐

安卓:HttpClient的POST

本文发布于:2023-10-10 22:26:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1479926.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:HttpClient   POST

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!