[英]Android Fail http Request … where is my error?
不知道我的錯誤在哪里
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import java.io.InputStreamReader;
import org.apache.http.message.BasicNameValuePair;
public class MainActivity extends Activity {
EditText email;
EditText passsword;
Button btn_send;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_send = (Button)findViewById(R.id.send_session);
btn_send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Send();
}
});
}
public void Send(){
String text ="";
try {
email = (EditText)findViewById(R.id.email);
passsword = (EditText)findViewById(R.id.password);
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://172.16.1.196:3000/clients/login.json");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("email",email.getText().toString()));
params.add(new BasicNameValuePair("password",passsword.getText().toString()));
httppost.setEntity(new UrlEncodedFormEntity(params));
Log.v("URL" , httppost.toString());
HttpResponse resp = httpclient.execute(httppost);
HttpEntity ent= resp.getEntity();
text = EntityUtils.toString(ent);
}
catch (Exception e) {
Log.v("mesage" , e.getMessage().toString());
}
email.setText(text);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
和我的活動
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:background="#283439">
<EditText
android:layout_width="wrap_content"
android:layout_height="50dip"
android:inputType="textEmailAddress"
android:ems="10"
android:id="@+id/email"
android:layout_marginTop="132dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textColor="#00c189"
android:textAlignment="center"
android:clickable="false"
android:background="@drawable/customs_borders"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="50dip"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/password"
android:textAlignment="center"
android:textColor="#00c189"
android:clickable="false"
android:background="@drawable/customs_borders"
android:layout_centerVertical="true"
android:layout_alignLeft="@+id/email"
android:layout_alignStart="@+id/email" />
<Button
android:layout_width="218dip"
android:layout_height="50dip"
android:text="Login"
android:id="@+id/send_session"
android:textColor="#0cc189"
android:background="#282934"
android:layout_marginTop="50dp"
android:layout_below="@+id/password"
android:layout_alignRight="@+id/password"
android:layout_alignEnd="@+id/password" />
</RelativeLayout>
和我的清單
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxxxx.xxxxxx" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.xxxxx.xxxxxx.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest
>
日志控制台的一部分
20:21.178 27635-27635 / com.example.xxxx.xxxxx W / dalvikvm:threadid = 1:線程以未捕獲的異常退出(組= 0x40ffb930)10-24 13:20:21.178 27635-27635 / com.example.xxxx。 xxxxx E / AndroidRuntime致命異常:com.example.xxxx.xxxxx.MainActivity.Send(MainActivity.java:81)位於com.example.xxxx.xxxxx.MainActivity $ 1.onClick(MainActivity.java :49),位於android.view.View.performClick(View.java:4421),位於android.view.View $ PerformClick.run(View.java:18190),位於android.os.Handler.handleCallback(Handler.java:725)在android.app.ActivityThread.main(ActivityThread.java:5279)在android.os.Looper.loop(Looper.java:175)在android.os.Handler.dispatchMessage(Handler.java:92)在java.lang。 com處com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1102)處java.lang.reflect.Method.invoke(Method.java:511)處的reflect.Method.invokeNative(本機方法)。位於dalvik.system.NativeStart.mai的android.internal.os.ZygoteInit.main(ZygoteInit.java:869) n(本機方法)
請幫忙!
錯誤日志顯示:
com.example.xxxx.xxxxx.MainActivity.Send(MainActivity.java:81)上的java.lang.NullPointerException
這表明您的Send
方法中MainActivity
第81行應該為null。
此外,一旦解決了該問題,您將立即遇到NetworkOnMainThreadException ,因此請確保閱讀該答案以使應用程序正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.