简体   繁体   English

服务器从android应用接收空的JSON字符串数组

[英]Server Receive empty JSON string array From android app

I am sending image data from my android app to server,I can see in log that string array is not empty and has correct data but on server it receive null. 我正在将图像数据从我的android应用程序发送到服务器,我在日志中看到字符串数组不是空的并且具有正确的数据,但是在服务器上它接收到null。

Here is my AsyncTask from where i am sending data to server 这是我将数据发送到服务器的AsyncTask

protected Void doInBackground(Void... params) {
        BufferedReader reader;

        try {

            URL url = new URL("http://www.example.com/Data/galleryLog.php");

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoInput(true);
            connection.setDoOutput(true);

            Log.d(TAG,"String Data "+Images);

            //For POST Only - Begin
            OutputStream os = connection.getOutputStream();
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
            writer.write(Images);
            writer.flush();
            writer.close();
            os.close();
            connection.connect();
            //For POST Only End
            int responseCode = connection.getResponseCode();
            Log.d(TAG, "POST RESPONSE CODE " + responseCode);
            String LoginResult;
            if (responseCode == HttpURLConnection.HTTP_OK) {
                //Success
                Log.d(TAG, "Success connection with database");
                reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String inputLine;
                StringBuffer response = new StringBuffer();

                while ((inputLine = reader.readLine()) != null) {
                    response.append(inputLine);
                }
                reader.close();

                Log.d(TAG, "Reader Close - Printing Result ");
                //Print Result
                Log.d(TAG, "Calling Response " + response.toString());
            }


            return null;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

This is the string i got in logcat which is not empty and has correct data 这是我在logcat中获得的字符串,该字符串不为空并且具有正确的数据

String Data {"galleryDesc":"My First Gallery","images":[{"base64code":"Base64Image","type":"jpg","imagename":"image-101.jpg"}],"User_ID":"18","galleryTitle":"Image-101.jpg"}

My Php Code where i am printing received data into file but it give me blank file always 我在我的Php代码中将接收到的数据打印到文件中,但是它总是给我空白文件

<?php
$tm = 'ritu_gallery_'.time().'.log';
file_put_contents($tm, print_r($_POST, TRUE));

echo "Response<br>";
print_r($_POST);
?>

Its create text file like that 它像这样创建文本文件

Array ( ) 数组()

UPDATE: its an issue in AsyncTask String array. 更新:这是AsyncTask字符串数组中的问题。 I don't know why its not working.If anyone knows please let me know 我不知道为什么它不起作用。如果有人知道,请告诉我

When i am sending this string array to server.it's print blank values on server 当我将此字符串数组发送到server.it在服务器上打印空白值

 {"galleryDesc":"My First Gallery","images":[{"base64code":"Base64Image","type":"jpg","imagename":"image-101.jpg"}],"User_ID":"18","galleryTitle":"Image-101.jpg"}

when i add above String array into this 当我在上面添加String数组时

String data= URLEncoder.encode("Pic","UTF-8")+ "=" +URLEncoder.encode(Images,"UTF-8");

It creates file on server like this 它在服务器上这样创建文件

Array ( [Pics] => {"galleryDesc":"My First Gallery","images":[{"base64code":"Base64Image","type":"jpg","imagename":"101.jpg"}],"User_ID":"18","galleryTitle":"101.jpg"} ) Array([Pics] => {“ galleryDesc”:“我的第一画廊”,“图像”:[{“ base64code”:“ Base64Image”,“ type”:“ jpg”,“ imagename”:“ 101.jpg”} ],“ User_ID”:“ 18”,“ galleryTitle”:“ 101.jpg”})

with all correct values.If anyone know why this is happening. 所有正确的值。如果有人知道为什么会这样。 Please let me know 请告诉我

您在这里访问错误的变量,图像是文件,它将在$_FILE变量中而不在$ _POST变量中,而且表单应该是多部分的formdata,我不知道您是否正在这样做,否则我不会对android不太了解,但是如果这样做,那么您可以在$ _FILE变量中看到文件

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

相关问题 Android-服务器中的JSON为空 - Android - JSON from server is empty 我必须怎么做才能从Android应用程序上的服务器接收JSON数据 - What must I do to receive JSON data from a server on an android app 从服务器的String接收创建JSON对象 - Create JSON object from a String receive from Server Spring-MVC和Android:服务器从android获取空的JSON字符串 - Spring-MVC & Android: Server gets a empty JSON string from android 从服务器接收测验JSON字符串并显示在屏幕上 - Receive Quiz JSON string from server and display on screen 如何从 Json 接收数组到 Set<String> 在爪哇? - How to receive a Array from a Json into Set<String> in Java? 无法从Android中的PHP文件接收JSON字符串 - Can't receive JSON string from PHP file in Android Android 应用程序 - 从服务器发送和接收数据的问题 - Android app - problem with send and receive data from server 编写一个JSON方法,该方法将接收代表整数数组的JSON字符串,然后从该数组返回整数Arraylist? - Write a JSON method that will receive a JSON string representing an array of integers, return Arraylist of integers from the array? 如何从Android向PHP服务器localhost发送请求(字符串数据)并从服务器PHP接收响应结果 - How to send request(String data) from android to PHP server localhost and receive response result form server PHP
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM