从Android应用程序使用url POST的最佳方式

时间:2014-09-16 20:43:46

标签: android http-post

我正在处理服务器和我的应用程序之间以json格式发送和接收数据,一切都很好。但是今天我需要在WebView中加载的url站点中更改de语言。我需要发布" lang"和DeviceLanguage配对到服务器中托管的站点,以相应地显示站点。我发现你不需要使用doInBackground和其他方法来完成任务,只需这个

byte[] post = EncodingUtils.getBytes("lang="+DeviceLanguage,"BASE64");
MainActivity.myWebView.postUrl("http://myownsite.com/info.php", post);

我得到了我想要的东西。我的问题是:这样简单吗?我没有考虑到什么事情?我必须使用try和catch吗?有安全问题吗?

1 个答案:

答案 0 :(得分:0)

好的,如果您使用Webview,则无需创建View和WebKit渲染引擎。 我认为你不应该使用这种代码来增加你的应用程序。

恕我直言,你应该使用AsyncTask。     public class SubmitAsync扩展了AsyncTask {

    @Override
    protected String doInBackground(Object... data) {
       HttpParams httpParams = new BasicHttpParams();
       HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
       HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
       HttpClient client = new DefaultHttpClient(httpParams);
       HttpPost request = new HttpPost("http://www.yourweb.com");
       List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);
       nameValuePairs.add(new BasicNameValuePair("name", Double.toString((Double) data[0])));
       nameValuePairs.add(new BasicNameValuePair("name1", Double.toString((Double) data[1])));
       ...
       request.setEntity(new UrlEncodedFormEntity(nameValuePairs));
       HttpResponse response=client.execute(request);
       ...