2012-04-03 3 views
0

как я могу отправить данные без использования NameValuePair?Android POST без использования NameValuePair

Я хочу отправить строку В JS, я хотел бы использовать:

var separator = String.fromCharCode(0xef, 0xbf, 0xbf); 
var postUrl = "PostUrl"; 
var postData = "3" + separator + "0" + separator + "13" 
network.setUnicode(true); 
this.reply = network.post(postUrl, postData); 

ответ

2

Смотрите HTTP Client, который поставляется с Android. В вашем случае вы захотите использовать StringEntity в качестве полезной нагрузки вашего запроса POST.

public void postString(URI uri, String yourDataString) throws IOException { 
    HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(uri); 
    post.setEntity(new StringEntity(yourDataString)); 

    client.execute(post); 
} 

Очевидно, что вы захотите сделать более тщательную проверку на наличие ошибок и т. П.

+0

И это ответ :) –

0

Construct URL что-то, как показано ниже. Это должно сработать.

http://www.site.com?postData=3&separator=0&anotherParam=value; 
0
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
       nameValuePairs.add(new BasicNameValuePair("userid","123")); 
       nameValuePairs.add(new BasicNameValuePair("date","2012")); 
       nameValuePairs.add(new BasicNameValuePair("op","update")); 
      try { 
        HttpClient httpclient = new DefaultHttpClient(); 
        HttpPost httppost = new HttpPost("http://www.myurl.com/action/put/newrecord"); 
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
        HttpResponse response = httpclient.execute(httppost); 
        HttpEntity entity = response.getEntity(); 
        is = entity.getContent(); 
      } 

Я использую этот метод для отправки данных в Android/Java. Однако, я думаю, что это правильный путь!

+0

Эх ... Я знаю этот метод. Я сказал, что это должно быть без пар :) –

+0

mmmmm Bro, я знаю этот путь, потому что вы тоже можете аутентифицироваться :) Однако попробуйте сделать «URL» с вашими параметрами. –

1
URL url; 
    URLConnection urlConnection; 
    DataOutputStream outStream; 
    DataInputStream inStream; 

    // Build request body 
    String body = "3" + separator + "0" + separator + "13" 

    // Create connection 
    url = new URL("http://www.site.com"); 
    urlConnection = url.openConnection(); 
    ((HttpURLConnection)urlConnection).setRequestMethod("POST"); 
    urlConnection.setDoInput(true); 
    urlConnection.setDoOutput(true); 
    urlConnection.setUseCaches(false); 
    urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
    urlConnection.setRequestProperty("Content-Length", ""+ body.length()); 

    // Create I/O streams 
    outStream = new DataOutputStream(urlConnection.getOutputStream()); 
    inStream = new DataInputStream(urlConnection.getInputStream()); 

    // Send request 
    outStream.writeBytes(body); 
    outStream.flush(); 
    outStream.close(); 

    // Get Response 
    String buffer; 
    while((buffer = inStream.readLine()) != null) { 
     System.out.println(buffer); 
    } 

    // Close I/O streams 
    inStream.close(); 
    outStream.close(); 
+1

Хм, я еще не использовал этот URLConnection, DataStreams, но, похоже, работает. Спасибо –

+0

что такое saprator в этом –

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