安卓发送POST请求到Google Sheet脚本

时间:2019-04-18 21:11:30

标签: java android post google-apps-script httpurlconnection

我正在尝试通过POST请求将Android中的数据发送到Google Spreadsheet中的脚本。我没有收到任何错误,但请求似乎没有通过。

我已经尝试了here

提供的一些解决方案

我用一种简单的形式尝试了该脚本,并且可以运行,但是从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,不起作用。

0 个答案:

没有答案