2016-09-07 113 views
-3

有没有一种方法可以将值从Android加载到网页上的文本字段,而无需加载/显示WebView?例如,我有两个字符串,并希望在网页上填充两个字段,有没有办法在“后台”中执行此操作,换句话说,无需打开用户可以看到的窗口? 感谢从android显示WebView的网站上的文本字段没有显示WebView

更新

发现探戈

的帮助

这是我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类别的一个片段,我打印响应到日志

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); 
+0

欢迎。请访问帮助中心,了解如何提出一个好问题。 http://stackoverflow.com/help/how-to-ask – polka

回答

0

使用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);