android – http post方法将空值传递给服务器

@H_502_2@ try { url= new URL(ConstantsClass.VENDOR_FOLLOW + "?UID=" +android_id+"&URL='"+resultfinal+"'&device=android"); connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST"); request = new OutputStreamWriter(connection.getOutputStream()); request.flush(); request.close(); request.write("Hello!!!"); String line = ""; InputStreamReader isr = new InputStreamReader(connection.getInputStream()); BufferedReader reader = new BufferedReader(isr); StringBuffer sb = new StringBuffer(); while((line=reader.readLine())!=null) { sb.append(line + "&"); } response = sb.toString(); //response.getEntity().getContent(); Log.i("Test","updated response: " + response); } catch (IOException e) { e.printStackTrace(); } Log.i("Test","**************url list********************" + url); tag_text.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent in=new Intent(context,LinkWebView.class); in.putExtra("vendorUrl",resultfinal); context.startActivity(in); //postData(); } }); } tag_text.setTextSize(16); return view; }

嗨,我是Android的新手,我试图将值从url传递到服务器,但我得到在服务器端传递的空值.更新响应为空.我的服务器端值不给我任何值.我需要从上面给出的url传递url,android_id和device.我也尝试了httpclient,但它也给了我null值.

最佳答案
你应该尝试下面的代码,它运行得很好.

@H_502_2@ // ADD YOUR REQUEST DATA HERE (you can pass number of variable). ArrayList

现在建立你的网络连接

(1)将简单字符串发送到服务器

@H_502_2@ try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("your url only ex:www.google.com/abc"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpParams httpParameters = new BasicHttpParams(); DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { Log.e("Loading Runnable Error in http connection :",e.toString()); }

(2)将JSON编码字符串发送到服务器

@H_502_2@HttpClient client = new DefaultHttpClient(); HttpConnectionParams.setConnectionTimeout(client.getParams(),10000); //Timeout Limit HttpResponse response; JSONObject json = new JSONObject(); try { HttpPost post = new HttpPost(URL); json.put("user_name","chintan"); json.put("password","khetiya"); StringEntity se = new StringEntity( json.toString()); se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,"application/json")); post.setEntity(se); response = client.execute(post); /*Checking response */ if(response!=null){ is = response.getEntity().getContent(); //Get the data in the entity } } catch(Exception e) { e.printStackTrace(); createDialog("Error","Cannot Estabilish Connection"); }

两种情况下的反应都相同

@H_502_2@try { BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { Log.e("Loading Runnable Error converting result :",e.toString()); }

现在最终结果包含整个输出字符串,现在它取决于您将如何读取数据.使用json或者其他.我正在使用json,所以把它的示例代码可能对你有所帮助.

@H_502_2@JSONObject json_data = new JSONObject(result);// its a string var which contain output. my_output_one = json_data.getString("var_1"); // its your response var form web. my_output_two = json_data.getString("var_2");

现在它结束了你有两个变量,它有任何价值,并使用任何.

现在这对你有帮助.如果您有任何疑问,请告诉我.

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...