通过hashmap使用两个不同的键传递两个值

时间:2016-03-19 07:30:58

标签: android

我是Android开发的新手。我试图在特定位置上传服务器上的图像,但这对我来说非常困难。

所以我在这里上传了一些代码,通过它我可以在hashmap中使用两个不同的键传递两个不同的值。这是我想要传递这些值的代码

  protected String doInBackground(Bitmap... params) {
            Bitmap bitmap = params[0];
            String uploadImage = getStringImage(bitmap);
            session = new SessionManager(getApplicationContext());

            HashMap<String,String> data = new HashMap<>();
            //HashMap<String, String> data2 = session.getUserDetails();
          //  String id = data2.get(SessionManager.KEY_ID);
            data.put(UPLOAD_KEY, uploadImage);
           // data2.put(USER_KEY, id);
 /////rh is the object of class where i want to pass values 
            String result = rh.sendPostRequest(UPLOAD_URL,data,data2);

            return result;
        }

这是我想要将这些值传递给服务器和Php文件的代码

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import javax.net.ssl.HttpsURLConnection;


public class RequestHandler {

public String sendGetRequest(String uri) {
    try {
        URL url = new URL(uri);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));

        String result;

        StringBuilder sb = new StringBuilder();

        while((result = bufferedReader.readLine())!=null){
            sb.append(result);
        }

        return sb.toString();
    } catch (Exception e) {
        return null;
    }
}

public String sendPostRequest(String requestURL,
                              HashMap<String, String> postDataParams) {

    URL url;
    String response = "";
    try {
        url = new URL(requestURL);

        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(15000);
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);


        OutputStream os = conn.getOutputStream();
        BufferedWriter writer = new BufferedWriter(
                new OutputStreamWriter(os, "UTF-8"));
        writer.write(getPostDataString(postDataParams));

        writer.flush();
        writer.close();
        os.close();
        int responseCode = conn.getResponseCode();

        if (responseCode == HttpsURLConnection.HTTP_OK) {
            BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            response = br.readLine();
        } else {
            response = "Error Registering";
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return response;
}

private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {
    StringBuilder result = new StringBuilder();
    boolean first = true;
    for (Map.Entry<String, String> entry : params.entrySet()) {
        if (first)
            first = false;
        else

            /*result.append("&");

        result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));*/

        result.append("&");

        result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
    }

    return result.toString();
}
}

0 个答案:

没有答案