繁体   English   中英

将json数据从android发送到php linux服务器

[英]Send json data from android to php linux server

我开发了一个Android应用,该应用使用JSON将数据发送到php网络服务。 我是使用wampp服务器完成的,一切正常。 但是现在,我正在尝试使用Linux服务器(GoDaddy.com)将其部署在虚拟主机中,并且现在发生了奇怪的事情。

这是我的Java代码:

URL url = new URL(JSON_POST_VENDA);
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                // To upload data to a web server, configure the connection for output
                con.setDoOutput(true);
                con.setDoInput(true);
                // For best performance, you should call either setFixedLengthStreamingMode(int)
                // when the body length is known in advance, or setChunkedStreamingMode(int)
                // when it is not
                con.setChunkedStreamingMode(0);

                con.setRequestMethod("POST");

                con.setRequestProperty("Accept", "application/json");
                con.setRequestProperty("Content-type", "application/json;charset=utf-8");
                con.setRequestProperty("accept-charset", "UTF-8");

                // bla bla bla ... (just adding JSONObject and array)

                os = new OutputStreamWriter(con.getOutputStream(), "utf-8");
                os.write(vendaJson.toString());
                os.close();

                if (con.getResponseCode() == HttpURLConnection.HTTP_OK){
                    BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                    String sLinha = null;
                    StringBuilder builder = new StringBuilder();
                    while ((sLinha = reader.readLine()) != null){
                        builder.append(sLinha+"\n");
                    }
                    reader.close();

                    Log.d("Post da Venda", builder.toString());

                    return builder.toString();
                } else {
                    Log.d("Post de Venda", "Não conseguiu conectar!");
                    return "500";
                }

和我的PHP服务器代码:

if($_SERVER["REQUEST_METHOD"] == "POST") {

  //primeiro parametro recupera o objeto json do post content
  //segundo parametro transforma o objeto em array assossiativo
  //$jsondata = json_decode(file_get_contents("php://input"), true);

  $param = file_get_contents("php://input");
  echo "Receved: ".$param;

  $jsondata = json_decode($param, true);
  $json_errors = array(
    JSON_ERROR_NONE => 'No error has occurred',
    JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded',
    JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
    JSON_ERROR_SYNTAX => 'Syntax error',
);
 echo 'Last error : ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;

登录的内容为“ Log.d(“ Post da Venda”,builder.toString());“ 行是:

D / Post da Venda:已接收:上一个错误:没有发生错误

我确定服务器可以正常工作,因为我已经使用JaSON for Chrome测试了该服务器,并收到以下响应:

接收:{“ vl_liquido”:130,“刺”:6,“产品”:[{“ vl_liquido”:120,“产品”:7,“ vl_desconto”:0:“ vl_unitario”:120,“ qtd”:1 ,“ descricao”:“ Barbell Ouro Amarelo 2mm Ouro”,“ vl_total”:120}],“ idvenda”:0,“ servicos”:[{“ vl_liquido”:10,“ servico”:2,“ vl_desconto”:0 ,“ vl_unitario”:10,“ qtd”:1,“ descricao”:“AplicaçãoPiercing Nariz”,“ vl_total”:10}],“ vl_bruto”:130,“ data”:“ 2016-03-05”,“ funcionario“:7,” tt_itens“:2,” vl_desconto“:0,” senha“:5,” observacao“:”“}最后错误:未发生任何错误

会发生什么事? 我已经从聊天集铸造中寻找了东西,但是对我没有任何帮助。

任何帮助将不胜感激,

谢谢

好吧,我通过使用OkHttp解决了这个问题。 实施起来非常简单。

谢谢你所做的一切。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM