【问题标题】:Populating text fields on a website from android without showing a WebView从 android 填充网站上的文本字段而不显示 WebView
【发布时间】:2016-09-08 05:17:26
【问题描述】:

有没有办法在不加载/显示 WebView 的情况下从 android 将值放入网页上的文本字段?例如,我有两个字符串,想在网页上填充两个字段,有没有办法“在后台”执行此操作,或者换句话说,不必打开用户看到的窗口? 谢谢

更新

在 Tango 的帮助下找到了解决方案

这是在我的 OkHttpHandler 类中:

public class OkHttpHandler extends AsyncTask<String, Void, String> {

    OkHttpClient client = new OkHttpClient();
    String cardNumber, privNumber;

    public  OkHttpHandler(String cardNumber, String privNumber) {

        this.cardNumber = cardNumber;
        this.privNumber = privNumber;
    }

    @Override
    protected String doInBackground(String... strings) {

        RequestBody formBody = new FormBody.Builder()
                //Change .add first parameter to the text field you want to populate
                .add("CardNbr", cardNumber)
                .add("CardPin", privNumber).build();
        Request request = new Request.Builder().url(strings[0])
                .post(formBody).build();

        try {
            Response response = client.newCall(request).execute();
            if (!response.isSuccessful())
                throw new IOException("Unexpected code "+ request.toString());
            return response.body().string();
        } catch (Exception e) {
        }
        return null;
    }
}

我的 MainActivity 类的 sn-p 和我打印对日志的响应

    OkHttpHandler handler = new OkHttpHandler(items.get(0).getNumber(), items.get(0).getPrivNumber());
    String result = "";
    try {
        result = handler.execute("urlHere.com").get();
    } catch (InterruptedException e) {

        e.printStackTrace();
    } catch (ExecutionException e) {

        e.printStackTrace();
    }
    Log.d("returned value", result);

【问题讨论】:

标签: java android webpage


【解决方案1】:

使用OkHttp

 final OkHttpClient client = new OkHttpClient();

     RequestBody formBody = new FormBody.Builder()
            .add("field to be filled", "content")
            .build();
        Request request = new Request.Builder()
            .url("webpage url")
            .post(formBody)
            .build();

        Response response = client.newCall(request).execute();
        if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 2020-12-09
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多