当前位置: 首页 > 知识库问答 >
问题:

Android http请求失败...我的错误在哪里?

闻昊英
2023-03-14
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 276 35-27635/com.example.xxxx.xxxxw/dalvikvm:threadid=1:线程因未捕获异常退出(组=0x40FFB930)10-24 13:20:21.178 276 35-27635/com.example.xxxx.xxxx/androidruntime:致命异常:main java.lang.nullpointerexception at com.example.xxx.xxxx.mainactivity.send(mainactivity.java:81)at.performClick(View.java:4421),android.view.view$performClick.run(View.java:18190),android.os.handler.handleCallback(handler.java:725),android.os.handler.dispatchMessage(handler.java:92),android.os.handler.dispatchMessage(handler.java:175),android.app.activitythread.main(activitythread.java:5279),java.lang.remethodandArgsCaller.run(zygoteinit.java:1102),com.android.internal.os.zygoteinit.main(zygoteinit.java:869),dalvik.system.nativestart.main(Na显式法)

请救命!

共有1个答案

孙乐逸
2023-03-14

错误日志显示:

位于com.example.xxxx.xxxx.mainActivity.send的java.lang.NullPointerException(mainActivity.java:81)

这表明在send方法mainactivity第81行中有一些不应该是null的内容。

 类似资料:
  • 我正在开发一个脚本,以访问图形API阅读我们的广告中的所有用户。我正在通过以下方式使用AXIOS执行一个请求: 然而,这失败了,因为: client_id=535FB089-9FF3-47B6-9BFB-4F1264799865&scope=https%3a%2f%2fgraph.microsoft.com%2f.default&client_secret=qwgdyamab0yskul1qkv5

  • 当试图将图像上传到我的服务时,我在Jersey和中有一个非常奇怪的行为。我的服务在DropWizard上运行。 接受图像(以及元数据对象)的方法如下所示: 如果我尝试使用绝对路径上传一个文件,这实际上是有效的!但是,它不工作,我试图上传一个文件使用相对路径。 更重要的是,当服务部署在另一台机器上(上传映像请求来自不同的机器)时,它也不起作用。这很重要,因为我将服务部署到Heroku,我需要从其他地

  • 问题内容: 我正在使用React Native开发一个简单的应用程序。我正在Android设备上对其进行测试。我创建了一个Node.js服务器来监听请求,该服务器运行在http:// localhost:3333 /上 。接下来,我要从index.android.js进行提取请求。下面是代码。 节点服务器上请求处理程序的代码如下 但是,获取请求无效。我在Chrome控制台中收到的错误是:TypeE

  • 所以我已经研究了好几个小时,尝试了不同的东西,研究了好几个小时都没有结果。调用是在提供user和pass之后获取JWT令牌。 当它到达服务器时,morgan看到有一个请求,但我得到的状态是400。这是我的路线 我很难理解护照是怎么回事。authenticate('localAuth')起作用,因此这是我的策略文件,以备需要 更新:我在检查fiddler上的请求时遇到了某种错误。 ~标题~:132

  • 问题内容: 这段代码 给我这个错误 我对SSL几乎一无所知,但我曾尝试下载该站点的证书并使用该选项指向该文件,但是它没有用。我想念什么吗? 问题答案: 正如评论中已经指出的那样:从SSLLabs报告中可以看出,该网站的SSL实施不正确。该报告中有关您的问题的主要部分是: 该服务器的证书链不完整。等级上限为B。 这意味着服务器没有发送验证证书所需的完整证书链。这意味着您需要在验证时自行添加丢失的证书