Jag håller på med en app som är väldigt beroende av GET requests, men har ett stort problem: En request tar ca. 3sek!
Att skicka ett request ifrån webbläsaren går snabbt så det är inte anslutningen eller webbservern det är fel på.
Koden:
Kod:
Button play = (Button) findViewById(R.id.buttonPlay);
play.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
HttpClient httpclient = new DefaultHttpClient();
String getURL = "http://" + ip + ":90/&cmd&toggle";
HttpGet get = new HttpGet(getURL);
try {
httpclient.execute(get);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Jag har även testat att lägga till
Kod:
HttpParams params = new BasicHttpParams();
params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
(och självklart skicka parms till DefaultHttpClient())
men utan verkan.
Eftersom det är jag som har gjort webservern så har jag testat lite olika saker på den också. Det enda som verkar fixa problemet är att inte skicka ut någon respons(200). Problemet är då att DefaultHttpClient ibland gör flera försök att ansluta, jag vill bara ha ett.
Det kan vara så att jag behöver skicka ut något mer, men jag vet inte vad?
Jag har testat att bara skicka respons, skicka respons & content-type headers, skicka respons & content-type headers & OK som text.
Det går ju som sagt bra att ansluta med webbläsaren både på telefonen och datorn. Det går även bra att skicka GET requests ifrån javascript.