Я пытаюсь отправить данные из Android в скрипт в электронной таблице Google с помощью запроса POST.Я не получаю ошибок, но запрос, похоже, не проходит.
Я попробовал некоторые из предоставленных решений здесь
Я попробовал скрипт с простымформа и это работает, но с Android это не похоже, что что-то даже пытается добраться до него.
Я использую 2 класса для этого, один расширяет AppCompatActivity
, а другой расширяет AsyncTask
public class FormActivity extends AppCompatActivity {
// STUFF
private void sendData() {
// Post Request
int data1 = SOMEDATA1;
int data2= SOMEDATA2;
String sdata1 = Integer.toString(data1 );
String sdata2 = Integer.toString(data2);
String urlString = MYSCRIPTURL; // URL to call
String data = "data1=" + data1 + "&data2=" + data2 ; //data to post
MyAsyncTask myAsyncTask = new MyAsyncTask();
myAsyncTask.execute(urlString, data);
}
}
Это класс, который должен выполнять запрос POST
public class MyAsyncTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
String urlString = params[0]; // URL to call
String data = params[1]; //data to post
OutputStream out = null;
try {
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
out = new BufferedOutputStream(urlConnection.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
writer.write(data);
writer.flush();
writer.close();
out.close();
urlConnection.connect();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
}
}
Я также добавил
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
в манифест.
Кажется, что все работает нормально до конца, но на стороне скрипта в журнале ничего не отображается.
Метод doInBackground
в ответе на связанный вопрос недействителен, но только в Android Studioпринимает это как строку для меня.Помимо этого и нескольких дополнений код тот же.
РЕДАКТИРОВАТЬ: Я также пытался использовать GET, не работает.