android asynctask for httpconnection



谁能告诉我如何解决这个问题....为什么不工作我试图asynctask连接到服务器,所以它可以在单独的线程

private class SticketFunctionTask extends AsyncTask<String, Void, Void> {
    @Override
    protected Void doInBackground(String... string) {
    try {
//public void  SticketFunction(){
    //HttpClient
    HttpClient SpeedSticket = new DefaultHttpClient();
    //Response handler
    ResponseHandler<String> res = new BasicResponseHandler();
    HttpPost postMethod = new HttpPost("http://www.mysite.php");
    //Log.v("log_tag", "+-+-+-+-+-+-+-+-+- Done: HTTP Post Sending Stickit to Server");
    //Log.v("log_tag", "+-+-+-+-+-+-+-+-+- sTICKET: " + z.getString(1) + " " + z.getString(2) + " " + z.getString(3) + " " + z.getString(4));
    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);
        nameValuePairs.add(new BasicNameValuePair("bookName", z.getString(1)+""));
        nameValuePairs.add(new BasicNameValuePair("bookAuth", z.getString(2)+""));
        nameValuePairs.add(new BasicNameValuePair("ISBN", z.getString(3)+""));
        nameValuePairs.add(new BasicNameValuePair("LibNumber", z.getString(4)+""));
        //Encode and set entity
        postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
        //Execute 
        String response = SpeedSticket.execute(postMethod, res).replaceAll("<(.|n)*?>","");
        if (response.equals("Done")){
            //Log.v("log_tag", "!!!!!!!!!!!!!!!!!! SticketFunction got a DONE!");
        }
        else Log.v("log_tag", "!!!!!!!?????????? SticketFunction Bad or no response: " + response);
    } catch (ClientProtocolException e) {  
        // TODO Auto-generated catch block 
        //Log.v("log_tag", "???????????????????? SticketFunction Client Exception");
    } catch (IOException e) {  
        // TODO Auto-generated catch block
        //Log.v("log_tag", "???????????????????? IO Exception");
    } 
}
    }
    }

如果您使用的是Eclipse,请选择所有代码并转到Source -> Correct缩进(或按Ctrl-I)。然后你会看到你有两个try块,但是两个catch块属于第二次尝试。因此,在第一次尝试时需要一个catch或finally block。

我认为最简单的解决方法是在第二次尝试时删除该行。

最新更新