安卓 Java方法发布到url并在输出时运行可调用
我编写了一个简单的方法将数据发布到URL并使用输出。我尝试了多种方法来消耗输出,但尚未成功:
public void postToUrl(final String theurl, final String query, final Callable<Void> myMethod){
String urlData="";
new Thread(new Runnable() {
@Override
public void run() {
try {
String urlData="";
String url=baseurl+ theurl + "/?" +query;
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
URLConnection connection = new URL(url).openConnection();
connection.setDoOutput(true);
connection.connect();
InputStream response = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(response));
String line="";
while ((line = reader.readLine()) != null) {
urlData += line;
}
reader.close();
// How to consume urlData here?
// myMethod.call(); not accepts parameter
try {
myMethod.call(urlData);
}catch (Exception e){
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}}
).start();
}
- 我必须将该方法包装在可运行方法中,不能期望可运行方法返回值李>
- 我试图在runnable内部准备好输出时使用它,但我需要调用第三方方法来传递输出。我发现可调用,但它不接受参数李>
- 我已经阅读了accepted answer here,但是它需要为每个方法定义一个新类李>
- 我读过this Q/A,但它建议定义一个接口,而不是我认为不正确使用接口的方法李>
如果此方法不是调用和使用url的正确方法,那么如何管理应用程序中的多个客户机-服务器请求?您是否为每种类型的请求重写上述代码?您真的为每个客户端服务器交互定义了一个新类或新接口吗
共 (0) 个答案