2011-10-16 1 views
0

Я пытаюсь отправить данные с Android-смартфона через запрос POST на веб-службу REST.Запрос POST не доходит до сервера

Там нет ошибки на стороне клиента, но на стороне сервера код не выполняется, если я отправил данные:

Клиент:

public void connect2server(View v) throws IOException { 

    HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://192.168.1.108:8182"); 

try { 
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
    nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
    nameValuePairs.add(new BasicNameValuePair("stringdata", "data")); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
    HttpResponse response = httpclient.execute(httppost); 

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

стороне сервера:

public class data_server extends ServerResource { 

public static void main(String[] args) throws Exception { 
    // Create the HTTP server and listen on port 8182 
    new Server(Protocol.HTTP, 8182, data_server.class).start(); 
} 

@Post 
public String toString1() throws IOException { 
    System.out.println(getRequestEntity().getText()); 
    return "ok"; 
} 

} 

Как это вызвано и как я могу это решить?

ответ

1

Нет ошибки, потому что вы ловите ошибки и ничего не делаете с ними.

Попробуйте добавить следующие блоки блокировки, и вы должны увидеть, что происходит на вашем выходе LogCat. Не забудьте импорта класса Log

Log.w("com.name.pkg", e); 

где «com.name.pkg» является только тег так поможет вам отфильтровать. обычно название программы.

В качестве альтернативы, обычно используется для отправки тоста с Toast.makeText (...). Show(); с e.getMessage(), но мне не нравится это делать, поэтому я не рекомендую его. Лучше передать строку обратно вызывающей функции и разрешить это делать тост.

+0

Спасибо, ive добавила команду журнала, но в logcat нет ошибки, указанной в logcat ... – FavoriteT

+0

Вам не нужно указывать ваш URL-адрес на что-то вроде 'http: //192.168.1.108: 8182/toString' – Merlin