PDA

View Full Version : مشکل در ارسال یک فرم متد پست



ak1_2004
پنج شنبه 24 اردیبهشت 1394, 19:12 عصر
سلام
می خوام یک فرم رو ارسال کنم با کد زیر :

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("URL");

List<NameValuePair> Params = new ArrayList<NameValuePair>();
Params.add(new BasicNameValuePair("AAA", "123"));
Params.add(new BasicNameValuePair("BBB", "456"));
try {
post.setEntity(new UrlEncodedFormEntity(Params));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
HttpResponse res = client.execute(post);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


اما تا دستور :

HttpResponse res = client.execute(post);

رو اضافه می کنم برنامه اررور می ده ! یعنی دقیقا اینجاست که هر مشکلی هست اتفاق می افته و تا قبلش راحت کار می کنه !!!

نمی دونم مشکل از کجاست ! لطفا راهنمایی کنید .

توی لوگ کت هم این چند خط قرمز رنگ هست :


05-14 15:03:27.104: E/AndroidRuntime(2937): FATAL EXCEPTION: main
05-14 15:03:27.104: E/AndroidRuntime(2937): Process: com.androidexample.test, PID: 2937
05-14 15:03:27.104: E/AndroidRuntime(2937): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androidexample.test/com.androidexample.test.testAndroidExample}: android.os.NetworkOnMainThreadException
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2325)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.ActivityThread.handleLaunchActivity(Ac tivityThread.java:2390)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.ActivityThread.access$800(ActivityThre ad.java:151)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.ActivityThread$H.handleMessage(Activit yThread.java:1303)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.os.Handler.dispatchMessage(Handler.java:10 2)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.os.Looper.loop(Looper.java:135)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.ActivityThread.main(ActivityThread.jav a:5257)
05-14 15:03:27.104: E/AndroidRuntime(2937): at java.lang.reflect.Method.invoke(Native Method)
05-14 15:03:27.104: E/AndroidRuntime(2937): at java.lang.reflect.Method.invoke(Method.java:372)
05-14 15:03:27.104: E/AndroidRuntime(2937): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:903)
05-14 15:03:27.104: E/AndroidRuntime(2937): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:698)
05-14 15:03:27.104: E/AndroidRuntime(2937): Caused by: android.os.NetworkOnMainThreadException
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.os.StrictMode$AndroidBlockGuardPolicy.onNe twork(StrictMode.java:1147)
05-14 15:03:27.104: E/AndroidRuntime(2937): at java.net.InetAddress.lookupHostByName(InetAddress. java:418)
05-14 15:03:27.104: E/AndroidRuntime(2937): at java.net.InetAddress.getAllByNameImpl(InetAddress. java:252)
05-14 15:03:27.104: E/AndroidRuntime(2937): at java.net.InetAddress.getAllByName(InetAddress.java :215)
05-14 15:03:27.104: E/AndroidRuntime(2937): at org.apache.http.impl.conn.DefaultClientConnectionO perator.openConnection(DefaultClientConnectionOper ator.java:142)
05-14 15:03:27.104: E/AndroidRuntime(2937): at org.apache.http.impl.conn.AbstractPoolEntry.open(A bstractPoolEntry.java:169)
05-14 15:03:27.104: E/AndroidRuntime(2937): at org.apache.http.impl.conn.AbstractPooledConnAdapte r.open(AbstractPooledConnAdapter.java:124)
05-14 15:03:27.104: E/AndroidRuntime(2937): at org.apache.http.impl.client.DefaultRequestDirector .execute(DefaultRequestDirector.java:365)
05-14 15:03:27.104: E/AndroidRuntime(2937): at org.apache.http.impl.client.AbstractHttpClient.exe cute(AbstractHttpClient.java:560)
05-14 15:03:27.104: E/AndroidRuntime(2937): at org.apache.http.impl.client.AbstractHttpClient.exe cute(AbstractHttpClient.java:492)
05-14 15:03:27.104: E/AndroidRuntime(2937): at org.apache.http.impl.client.AbstractHttpClient.exe cute(AbstractHttpClient.java:470)
05-14 15:03:27.104: E/AndroidRuntime(2937): at com.androidexample.test.testAndroidExample.onCreat e(testAndroidExample.java:69)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.Activity.performCreate(Activity.java:5 990)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1106)
05-14 15:03:27.104: E/AndroidRuntime(2937): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:2278)
05-14 15:03:27.104: E/AndroidRuntime(2937): ... 10 more




تازه برنامه نویسی آندروید و ایضا جاوا رو شروع کردم . برا همین زیاد سر در نمیارم !!!
ممنون از جوابتون

rezaricky
پنج شنبه 24 اردیبهشت 1394, 19:53 عصر
سلام ، دلیل اش اینه که شما داری در نخ اصلی برنامه این کار رو انجام میدی .
برای انجام این کار باید یک نخ جداگانه بسازی
برای نمونه این توتوریال رو بخون http://mobiledevtuts.com/android/android-http-with-asynctask-example/