Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将json发布到webservice时Android发送空参数_Java_Android_Json_Web Services_Httpurlconnection - Fatal编程技术网

Java 将json发布到webservice时Android发送空参数

Java 将json发布到webservice时Android发送空参数,java,android,json,web-services,httpurlconnection,Java,Android,Json,Web Services,Httpurlconnection,请帮助我,我在使用HttpUrlConnection类以JSON对象作为参数体发送POST请求时遇到问题。我一直在寻找同样的问题,我尝试了解决方案,但没有一个适合我的情况。这是我的代码(我在AsyncTask类中调用此方法):` 下面是我调用上述方法的代码: try{ JSONObject jsParam=new JSONObject(); jsParam.put("method", URLEncoder.encode("check","UTF-8")); JSONObject jsR

请帮助我,我在使用HttpUrlConnection类以JSON对象作为参数体发送POST请求时遇到问题。我一直在寻找同样的问题,我尝试了解决方案,但没有一个适合我的情况。这是我的代码(我在AsyncTask类中调用此方法):`

下面是我调用上述方法的代码:

try{
    JSONObject jsParam=new JSONObject();
jsParam.put("method", URLEncoder.encode("check","UTF-8"));

JSONObject jsResponse=postData(myUrl,jsParam);
} catch (Exception e){
    e.printStackTrace;
} finally{
    if(jsObj==null){
            Log.d("NullJson","Yes, jsObj return null");
        }  else {
            Log.d("ValidResponse",jsObj.toString());
        }
}
当此请求从android应用程序发布时,所述请求正文包含的web服务响应始终为空消息。但是,当我使用Postman客户端发送它时,web服务会响应有效消息。下面是我的邮递员代码:

POST /mro/public/index.php? HTTP/1.1
Host: mro.alfamartku.com
Content-Type: application/x-www-form-urlencoded;
Cache-Control: no-cache
Postman-Token: 25463d97-b821-7016-d3e7-5e256d69a31a

key={"method":"check"}
你错过的部分在下面。。。i、 e.如下:

// Send POST output.
printout = new DataOutputStream(urlConn.getOutputStream ());
printout.write(URLEncoder.encode(jsonParam.toString(),"UTF-8"));
printout.flush ();
printout.close ();

剩下的事情你可以做。

发布你的logcat错误它没有在应用程序中引发错误。应用程序成功向web服务发布请求,但它返回无效消息(在我的情况下,post body是空字符串),并给出响应“错误的方法”。根据API文档,我的文章正文完全相同(并且正确)。我已经检查并确保post不包含新的换行符。在我比较了您的代码和post man客户端生成的代码结果之后。我错过了
.setRequestProperty(“主机”、“someHostName”)部分。非常感谢你的解决方案,它对我有用。
URL url;
URLConnection urlConn;
DataOutputStream printout;
DataInputStream  input;
url = new URL (getCodeBase().toString() + "env.tcgi");
urlConn = url.openConnection();
urlConn.setDoInput (true);
urlConn.setDoOutput (true);
urlConn.setUseCaches (false);
urlConn.setRequestProperty("Content-Type","application/json");   
urlConn.setRequestProperty("Host", "android.schoolportal.gr");
urlConn.connect();  
//Create JSONObject here
JSONObject jsonParam = new JSONObject();
jsonParam.put("ID", "25");
jsonParam.put("description", "Real");
jsonParam.put("enable", "true");
// Send POST output.
printout = new DataOutputStream(urlConn.getOutputStream ());
printout.write(URLEncoder.encode(jsonParam.toString(),"UTF-8"));
printout.flush ();
printout.close ();