Я новичок в Android и искал в Интернете, пытаясь найти способ опубликовать некоторые данные на php. Все, что я хочу сделать, это отправить одну строку. Используя то, что я мог бы найти я придумал следующееAndroid Асинхронные запросы HTTP
Вот что у меня есть
package uk..........;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
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.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainMenu extends Activity implements OnClickListener{
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
}
/** Called when the user clicks the About button */
public void openAbout(View view) {
// Do something in response to button }
Intent intent = new Intent(this, DisplayAbout.class);
startActivity(intent);
}
/** Called when the user clicks the Graph button */
public void openGraph(View view) {
// Do something in response to button }
Intent intent = new Intent(this, DisplayGraph.class);
startActivity(intent);
}
/** Called when the user clicks the Test button */
public void openTest(View view) {
// Do something in response to button }
Intent intent = new Intent(this, DisplayTest.class);
startActivity(intent);
}
public void sendData(View v) {
new MyAsyncTask().execute("Hello World");
}
private class MyAsyncTask extends AsyncTask<String, Integer, Double>{
@Override
protected Double doInBackground(String... params) {
// TODO Auto-generated method stub
postData(params[0]);
return null;
}
protected void onPostExecute(Double result){
Toast.makeText(getApplicationContext(), "command sent", Toast.LENGTH_LONG).show();
}
public void postData(String valueIWantToSend) {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://......../receiver.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("myHttpData", valueIWantToSend));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
}
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
}
}
Я знаю, что код PHP работает как я попробовал его с помощью формы HTML, но когда я запускаю этого приложение падает и закрывается. В коде нет ошибок, и на данный момент я пытаюсь заставить эмулятор в Eclipse работать, но без радости, чтобы это не помогло.
Любые идеи относительно того, что я делаю неправильно?
Вы можете разместить трассировки стека? – quinnjn
Вы добавили разрешение на доступ к манифесту ?: –
Tobiel
Это именно то, чего мне не хватало, теперь это работает! Спасибо Тобиэлю, огромная помощь! –