0

我想连接到一个 url 并将用户名和密码发送到 url,然后我得到 url 的响应。我阅读了这个文档并使用了GET方法。但是当我运行程序时,程序已经停止。为什么?

GetFromURL.java:

@SuppressLint("NewApi")
class GetFromURL extends AsyncTask<String,Void, String> {
InputStream is = null;
@Override
protected String doInBackground(String... urls) {

    URL url=null;
    String response=null;
    String parameters=null;
    OutputStreamWriter request=null;


    try {
        url = new URL("http://www.authentication.com/login.php");//This is not real URL.
    } catch (MalformedURLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();

    }

    try {
        HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();
        urlConnection.setDoOutput(true);
        //setRequestProperty();
        urlConnection.setRequestMethod("GET");
        request=new OutputStreamWriter(urlConnection.getOutputStream());
        request.write(parameters);
        InputStreamReader inStream=new InputStreamReader(urlConnection.getInputStream());
        response=convertStreamToString(inStream);
        inStream.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    }
    return response;
}
private static String convertStreamToString(InputStreamReader is) {
    BufferedReader reader = new BufferedReader(is);
    StringBuilder sb = new StringBuilder();

    String line ="";
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        e.printStackTrace();

    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return sb.toString();
}
}

MainActivity.java:

public class MainActivity extends Activity {

String user=null;
String pass=null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    EditText user_id;
    EditText pass_id;
    Button button;

    user_id=(EditText)findViewById(R.id.user_id);
    pass_id=(EditText)findViewById(R.id.pass);
    button=(Button)findViewById(R.id.button_click);
    user=user_id.getText().toString();
    pass=pass_id.getText().toString();

    button.setOnClickListener(onClickListener);       

}
private OnClickListener onClickListener=new OnClickListener(){
    public void onClick(View v){
          AsyncTask<String, Void, String> async;
          String result="test";
          async=new GetFromURL().execute("U="+user+"&K="+pass);
            try {
                result = async.get();
                Log.i("RESULT", result);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ExecutionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }       
    }
};
}

例外:

11-28 14:55:48.757: I/catch2(19663): of main
11-28 14:55:48.757: W/System.err(19663): java.util.concurrent.ExecutionException: java.lang.NullPointerException
 11-28 14:55:48.757: W/System.err(19663):   at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:223)
 11-28 14:55:48.765: W/System.err(19663):   at java.util.concurrent.FutureTask.get(FutureTask.java:82)
 11-28 14:55:48.765: W/System.err(19663):   at android.os.AsyncTask.get(AsyncTask.java:462)
11-28 14:55:48.765: W/System.err(19663):    at org.example.reward.MainActivity$1.onClick(MainActivity.java:75)
 11-28 14:55:48.765: W/System.err(19663):   at android.view.View.performClick(View.java:3480)
11-28 14:55:48.765: W/dalvikvm(19663): threadid=11: thread exiting with uncaught exception (group=0x40a4a1f8)
11-28 14:55:48.765: W/System.err(19663):    at android.view.View$PerformClick.run(View.java:13983)
11-28 14:55:48.765: W/System.err(19663):    at android.os.Handler.handleCallback(Handler.java:605)
11-28 14:55:48.765: W/System.err(19663):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-28 14:55:48.765: W/System.err(19663):    at android.os.Looper.loop(Looper.java:137)
11-28 14:55:48.765: W/System.err(19663):    at android.app.ActivityThread.main(ActivityThread.java:4340)
11-28 14:55:48.765: W/System.err(19663):    at java.lang.reflect.Method.invokeNative(Native Method)
11-28 14:55:48.765: W/System.err(19663):    at java.lang.reflect.Method.invoke(Method.java:511)
11-28 14:55:48.772: W/System.err(19663):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-28 14:55:48.772: W/System.err(19663):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-28 14:55:48.772: W/System.err(19663):    at dalvik.system.NativeStart.main(Native Method)
11-28 14:55:48.772: W/System.err(19663): Caused by: java.lang.NullPointerException
11-28 14:55:48.772: W/System.err(19663):    at java.io.Writer.write(Writer.java:141)
11-28 14:55:48.772: W/System.err(19663):    at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:59)
 11-28 14:55:48.772: W/System.err(19663):   at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:1)
 11-28 14:55:48.772: W/System.err(19663):   at android.os.AsyncTask$2.call(AsyncTask.java:264)
 11-28 14:55:48.772: W/System.err(19663):   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
 11-28 14:55:48.772: W/System.err(19663):   at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-28 14:55:48.772: W/System.err(19663):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
11-28 14:55:48.772: W/System.err(19663):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-28 14:55:48.772: W/System.err(19663):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-28 14:55:48.772: W/System.err(19663):    at java.lang.Thread.run(Thread.java:856)
11-28 14:55:48.772: E/AndroidRuntime(19663): FATAL EXCEPTION: AsyncTask #1
11-28 14:55:48.772: E/AndroidRuntime(19663): java.lang.RuntimeException: An error occured while executing doInBackground()
11-28 14:55:48.772: E/AndroidRuntime(19663):    at android.os.AsyncTask$3.done(AsyncTask.java:278)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.lang.Thread.run(Thread.java:856)
11-28 14:55:48.772: E/AndroidRuntime(19663): Caused by: java.lang.NullPointerException
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.io.Writer.write(Writer.java:141)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:59)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:1)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
11-28 14:55:48.772: E/AndroidRuntime(19663):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-28 14:55:48.772: E/AndroidRuntime(19663):    ... 5 more
11-28 14:55:49.265: D/OpenGLRenderer(19663): Flushing caches (mode 0)
11-28 14:55:49.796: D/OpenGLRenderer(19663): Flushing caches (mode 1)
11-28 14:55:50.140: I/Process(19663): Sending signal. PID: 19663 SIG: 9
11-28 15:01:52.538: D/libEGL(19852): loaded /system/lib/egl/libGLES_android.so
11-28 15:01:52.538: D/libEGL(19852): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
11-28 15:01:52.554: D/libEGL(19852): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
11-28 15:01:52.561: D/libEGL(19852): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
11-28 15:01:52.726: D/OpenGLRenderer(19852): Enabling debug mode 0
11-28 15:02:08.827: D/dalvikvm(19852): GC_CONCURRENT freed 157K, 2% free 14304K/14535K, paused 3ms+1ms
11-28 15:02:09.991: I/catch2(19852): of main
11-28 15:02:09.991: W/System.err(19852): java.util.concurrent.ExecutionException: java.lang.NullPointerException
11-28 15:02:09.999: W/System.err(19852):    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:223)
11-28 15:02:09.999: W/System.err(19852):    at java.util.concurrent.FutureTask.get(FutureTask.java:82)
11-28 15:02:09.999: W/System.err(19852):    at android.os.AsyncTask.get(AsyncTask.java:462)
11-28 15:02:09.999: W/System.err(19852):    at org.example.reward.MainActivity$1.onClick(MainActivity.java:75)
11-28 15:02:09.999: W/System.err(19852):    at android.view.View.performClick(View.java:3480)
11-28 15:02:09.999: W/System.err(19852):    at android.view.View$PerformClick.run(View.java:13983)
11-28 15:02:09.999: W/System.err(19852):    at android.os.Handler.handleCallback(Handler.java:605)
11-28 15:02:09.999: W/System.err(19852):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-28 15:02:09.999: W/System.err(19852):    at android.os.Looper.loop(Looper.java:137)
11-28 15:02:09.999: W/System.err(19852):    at android.app.ActivityThread.main(ActivityThread.java:4340)
11-28 15:02:09.999: W/System.err(19852):    at java .lang.reflect.Method.invokeNative(Native Method)
11-28 15:02:09.999: W/System.err(19852):    at java.lang.reflect.Method.invoke(Method.java:511)
11-28 15:02:09.999: W/System.err(19852):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-28 15:02:09.999: W/System.err(19852):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-28 15:02:09.999: W/System.err(19852):    at dalvik.system.NativeStart.main(Native Method)
11-28 15:02:09.999: W/System.err(19852): Caused by: java.lang.NullPointerException
11-28 15:02:09.999: W/System.err(19852):    at java.io.Writer.write(Writer.java:141)
11-28 15:02:09.999: W/System.err(19852):    at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:59)
11-28 15:02:09.999: W/System.err(19852):    at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:1)
11-28 15:02:09.999: W/System.err(19852):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
11-28 15:02:09.999: W/System.err(19852):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-28 15:02:09.999: W/System.err(19852):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-28 15:02:09.999: W/System.err(19852):    at   android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
11-28 15:02:09.999: W/System.err(19852):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-28 15:02:09.999: W/System.err(19852):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-28 15:02:09.999: W/System.err(19852):    at java.lang.Thread.run(Thread.java:856)
11-28 15:02:10.007: W/dalvikvm(19852): threadid=12: thread exiting with uncaught exception (group=0x40a4a1f8)
11-28 15:02:10.015: E/AndroidRuntime(19852): FATAL EXCEPTION: AsyncTask #1
11-28 15:02:10.015: E/AndroidRuntime(19852): java.lang.RuntimeException: An error occured while executing doInBackground()
11-28 15:02:10.015: E/AndroidRuntime(19852):    at android.os.AsyncTask$3.done(AsyncTask.java:278)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.lang.Thread.run(Thread.java:856)
11-28 15:02:10.015: E/AndroidRuntime(19852): Caused by: java.lang.NullPointerException
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.io.Writer.write(Writer.java:141)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:59)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at org.example.reward.GetFromURL.doInBackground(GetFromURL.java:1)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
11-28 15:02:10.015: E/AndroidRuntime(19852):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-28 15:02:10.015: E/AndroidRuntime(19852):    ... 5 more
11-28 15:02:10.249: D/OpenGLRenderer(19852): Flushing caches (mode 0)
11-28 15:02:10.788: D/OpenGLRenderer(19852): Flushing caches (mode 1)
11-28 15:02:12.163: I/Process(19852): Sending signal. PID: 19852 SIG: 9

感谢帮助。

4

1 回答 1

1

You are passing a null variable to the function write..

request.write(parameters);
于 2012-11-28T12:14:07.470 回答