2014-08-14 5 views
0

Мне нужно отправить массив байтов, используя метод Http post, но в basicnamevalue класс его класса дает me error как конструктор BasicNameValuePair (String, byte []) undefined.is любой другой способ решить эту проблему, пожалуйста, помогите мне.Как отправить байт с помощью метода httppost в android

AsyncTask:

public void SaveDatandImage() { 

    Byte[] image1,image2; 

    new AsyncTask<Void, Void, String>() { 

     protected void onPreExecute() { 
      pDialog = new ProgressDialog(DetailsAcceptActivity.this); 
      pDialog.setTitle("Sending Query"); 
      pDialog.setMessage("Please Wait..."); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     }; 

     protected String doInBackground(Void... params) { 

      String response = null; 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();     

      Date today = new Date(); 

      nameValuePairs.add(new BasicNameValuePair("name","Name")); 
      nameValuePairs.add(new BasicNameValuePair("image1",image1)); 
      nameValuePairs.add(new BasicNameValuePair("image2",image2)); 

      if (Common.isInternetConnected(DetailsAcceptActivity.this)) { 
       try { 
        response = Common.httpPost(url_make_query, nameValuePairs, new String[] {}); 
        // Jobj=jparser.makeHttpRequest(url_make_query, "POST", nameValuePairs); 
        Log.v(Common.TAG, "Record respose : " + response); 

        Intent intent = new Intent(DetailsAcceptActivity.this, LoginActivity.class); 
        DetailsAcceptActivity.this.finish(); 
        startActivity(intent); 
        //Toast.makeText(MenuActivity.this,"Record Saved",Toast.LENGTH_SHORT).show(); 

        /*JSONObject jObj = new JSONObject(response); 
        strRespCode = jObj.getString("success"); 
        strRespMessage=jObj.getString("message");    

        int success=Jobj.getInt(TAG_SUCCESS); 
        if(success==1) { 
         Toast.makeText(MenuActivity.this,"inserted", Toast.LENGTH_SHORT).show(); 
        } else { 
         Toast.makeText(MenuActivity.this,"Error", Toast.LENGTH_SHORT).show(); 
        }*/ 
        //if(response.e) 
       } catch (ClientProtocolException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } else { 
       //groupMember.setSynced_with_server(StaticMembers.ZERO);      
       return "NO_NETWORK"; 
      } 
      return response; 
     }; 

     protected void onPostExecute(String result) { 
      if (result != null) { 
       if(!result.equals("NO_NETWORK")) { 
        //groupMember.setSynced_with_server(StaticMembers.ONE);       
       } 
       //Log.w("strRespMessage= "+strRespMessage, "********"); 
       // Toast.makeText(MenuActivity.this, "Query Sent!!", Toast.LENGTH_LONG).show(); 
       //finish(); 
      } 
      pDialog.dismiss(); 
     } 
    }.execute(null, null); 
} 

PHP скрипт принимать данные от переднего конца

<?php 


// array for JSON response 
$response = array(); 

// check for required fields 
if (isset($_POST['sender_mobile_no'])) { 

    $name = $_POST['name']; 
    $image1= $_POST['image1']; 
    $image2= $_POST['image2']; 


// include db connect class 
require_once __DIR__ . '/db_connect.php'; 

// connecting to db 
$db = new DB_CONNECT(); 

$con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE); 

// mysql inserting a new row 
$result = mysqli_query($con,"INSERT INTO tbl_query_master(name,image1,image2) VALUES('$name','$sender_name', '$image1', '$image2')"); 

    // check if row inserted or not 
    if ($result) { 
     // successfully inserted into database 
     $response["success"] = 1; 
     $response["message"] = "Order placed successfully."; 

     // echoing JSON response 
     echo json_encode($response); 
    } else { 
     // failed to insert row 
     $response["success"] = 0; 
     $response["message"] = "Oops! An error occurred."; 

     // echoing JSON response 
     echo json_encode($response); 
    } 
    } else { 
    // required field is missing 
    $response["success"] = 0; 
    $response["message"] = "Required field(s) is missing"; 

    // echoing JSON response 
    echo json_encode($response); 
    } 
?> 

ответ

1

Вы можете кодировать изображения байтов в строку, а затем отправить его на сервер. Вы можете использовать

String strImage=Base64.encodeToString(image1, Base64.DEFAULT); // image1 is your byte[] 

, а затем установить эту строку в вашем

, как пар имя
nameValuePairs.add(new BasicNameValuePair("image1",strImage)); 

В PHP:

вы можете декодировать строку, чтобы получить ByteArray следующим образом.

$str=$_POST['image1']; 
$abc=base64_decode($str); 
Смежные вопросы