2012-04-03 2 views
0

NameValuePair을 사용하지 않고 데이터를 게시하려면 어떻게해야합니까?NameValuePair를 사용하지 않는 Android POST

내가 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

Android와 함께 제공되는 HTTP Client을 확인하십시오. 귀하의 경우 POST 요청의 페이로드로 StringEntity을 사용하려고합니다.

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

구축의 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(); 
      } 

나는/안드로이드 자바에서 데이터를 게시하려면이 방법을 사용합니다. 그러나, 이것이 올바른 방법이라고 생각합니다!

+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 무엇입니까 –

관련 문제