2015-03-26 5 views
0

У меня есть текстовый/обычный файл в папке с ресурсами. Я хочу отправить этот файл через httpurlconnection как строку или предложить. как это сделать. Мой код, как показано ниже:как отправить файл активов Android через httpurlconnection?

java.net.URL url = new URL("https://xx.xx.xx.xxx"); 
       HttpsURLConnection urlConnection = (HttpsURLConnection)url.openConnection(); 
       urlConnection.setSSLSocketFactory(getSSLSocketFactory()); 
       urlConnection.setRequestMethod("POST"); 
       urlConnection.setReadTimeout(15*10000); 
       urlConnection.connect(); 

       AssetManager assetManager = MainActivity.ctx.getAssets(); 
       InputStream requestXML = assetManager.open("requestdump"); 

       String requestString = convertStreamToString(requestXML); 

       InputStream in = urlConnection.getInputStream(); 
       convertStreamToString(in); 

Пожалуйста, укажите, как отправить текстовый файл активов над HttpURLConnection?

Любая помощь будет оценена по достоинству.

+0

что проблема в вашем текущем коде? – Fahim

+0

Я не знаю, как отправить String requestString = convertStreamToString (requestXML); через httpurlconnection? – Shivv

+0

см. Это http://stackoverflow.com/questions/11766878/sending-files-using-post-with-httpurlconnection – Fahim

ответ

0

Используется для отправки строки

URL url = new URL("http://yoururl.com"); 
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); 
conn.setReadTimeout(10000); 
conn.setConnectTimeout(15000); 
conn.setRequestMethod("POST"); 
conn.setDoInput(true); 
conn.setDoOutput(true); 

List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("firstParam", paramValue1)); 

OutputStream os = conn.getOutputStream(); 
BufferedWriter writer = new BufferedWriter(
     new OutputStreamWriter(os, "UTF-8")); 
writer.write(getQuery(params)); 
writer.flush(); 
writer.close(); 
os.close(); 


private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException 
{ 
    StringBuilder result = new StringBuilder(); 
    boolean first = true; 

    for (NameValuePair pair : params) 
    { 
     if (first) 
      first = false; 
     else 
      result.append("&"); 

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

    return result.toString(); 
} 
+0

пары namevalue могут отправлять длинную строку? – Shivv

+0

yes..it может отправить длинную строку – Fahim

+0

ОК спасибо, я получаю строку с ошибкой здесь writer.write (getQuery (params)); – Shivv

Смежные вопросы