2010-11-25 2 views
1

Я пытаюсь написать что-то пустой файл на моем апача сервереHttpPost не работает!

myClient= new DefaultHttpClient(); 

StringEntity myString = new StringEntity("important message"); 
HttpPost httpPost = new HttpPost("http://10.0.218.211/myfile"); 
httpPost.setEntity(myString); 

HttpResponse response = myClient.execute(httpPost); 

The réponse возвращает «HTTP/1.1 200 OK», так это найти файл

Я попытался удалить файл и Возвращена ошибка 404

Я прочитал документацию Apache и выглядит как я делаю это правильно «я думаю»

Моя проблема ... содержимое файла не обновляется!

Пример будет отличным!

+0

Какой язык и рамки программирования вы написали в своем веб-приложении? Испытали ли вы веб-приложение с помощью других клиентов, например, «завиток»? Другими словами, почему это вопрос Android, а не вопрос веб-сервера или веб-приложения? – CommonsWare 2010-11-25 01:29:18

+0

Я должен согласиться с CommonsWare, проблема здесь, скорее всего, в том, что вы делаете на стороне сервера при получении запроса на отправку. – blindstuff 2010-11-25 01:32:56

ответ

4

Попробуйте это:

url = "http://10.0.218.211/post.php"; 

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost post = new HttpPost(url); 

try { 
     **// Add your data <-** 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("message", "important message 1")); 
     nameValuePairs.add(new BasicNameValuePair("message2", "important message 2")); 
     post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(post); 

     } catch (ClientProtocolException e) { 
     /TODO Auto-generated catch block 
     } catch (IOException e) { 
     // TODO Auto-generated catch block 
     } 
    } 

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

post.php

<?php 

$message = $_POST['message']; 

// Load XML file 
$xml = simplexml_load_file("myfile.xml"); 

//In this line it create a SimpleXMLElement object with the source of the XML file. 
$sxe = new SimpleXMLElement($xml->asXML()); 

//The following lines will add a new child and others child inside the previous child created. 
$item = $sxe->addChild("item"); 
$item->addChild("message", $message); 

//This next line will overwrite the original XML file with new data added 
$sxe->asXML("myfile.xml"); 

?> 

myfile.xml

<?xml version="1.0" encoding="utf-8" ?> 
<data> 
    <item> 
     <message>Important Message</messagee> 
    </item> 
</data> 
0

Возможно, вы захотите позвонить setcontentType. Например,

StringEntity myString = new StringEntity("important message"); 
myString.setContentType("application/json");//or what ever your server expected 
HttpPost httpPost = new HttpPost("http://10.0.218.211/myfile"); 
httpPost.setEntity(myString); 
Смежные вопросы