HttpPost gives Illegalstateexception


HttpPost gives Illegalstateexception

我正在尝试连接到使用httpPost请求创建的localhost(WAMP)Web服务。它不断失败,并给予非法执行权。有人能对这个问题提供一些见解吗?非常感谢。

String songtext,artisttext;
HttpResponse response ;
EditText song;
EditText artist;
EditText party;
HttpPost post;
HttpClient client;
ArrayList<NameValuePair> nameValuePairs;
String URL = "http://10.0.2.2/GoDJ/index.php?r=request/create";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    song = (EditText)findViewById(R.id.songTitle);
    artist = (EditText)findViewById(R.id.songArtist);
    party = (EditText)findViewById(R.id.partyid);

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
public void uploadToDB(View view)
{
    //send user message
    Context context = getApplicationContext();
    CharSequence text = "Letting the DJ Know!!";
    int duration = Toast.LENGTH_SHORT;
    Toast toast = Toast.makeText(context, text, duration);
    toast.show();
    //add values
    nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("party", party.getText().toString()));
    nameValuePairs.add(new BasicNameValuePair("title", song.getText().toString()));
    nameValuePairs.add(new BasicNameValuePair("artist", artist.getText().toString()));
    try
    {
        //instantiate request
        client = new DefaultHttpClient();
        post = new HttpPost(URL);
        text = "Set Up Client and Post";
        toast = Toast.makeText(context, text, duration);
        toast.show();
        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        text = "Entity Set";
        toast = Toast.makeText(context, text, duration);
        toast.show();
        response = client.execute(post);
        text = "Post Executed SUCCESS";
        toast = Toast.makeText(context, text, duration);
        toast.show();
    }
    catch(Exception e)
    {
        text = "FAILURE";
        toast = Toast.makeText(context, text, duration);
        toast.show();
        e.printStackTrace();
    }
}

}

这是因为你在安卓4上运行,并且在UI线程上不允许网络

请使用异步任务,它将解决问题。

下面是一个如何使用它的例子。

一个简单的方法是使用这个lib并使用CCD_ 1注释的方法进行post调用。

相关文章:
  • 没有找到相关文章