Я пытаюсь получить строку на моем сервере webapp2.Предполагается, что устройство Android отправляет на сервер строку name
, затем сервер возвращается к телефону "your name is: " + name
.
. Сервер возвращается только на Android "your name is: "
, поскольку строка name
выглядитбыть нулевым на стороне сервера.Я не уверен, если проблема на Android или на стороне сервера.
Мой код выглядит следующим образом:
ANDROID.java
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
String name = "Jay";
String serverURL = "http://myapp.appspot.com";
URL url = new URL(serverURL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
try{
httpURLConnection.setReadTimeout(15000);
httpURLConnection.setConnectTimeout(15000);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = new BufferedOutputStream(httpURLConnection.getOutputStream());
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode(name,"UTF-8");
writer.write(post_data);
writer.flush();
writer.close();
outputStream.close();
InputStream inputStream = new BufferedInputStream(httpURLConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String result="";
String line="";
while((line = reader.readLine())!= null)
result += line;
reader.close();
inputStream.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} finally {
httpURLConnection.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
SERVER.py
import webapp2
class MainHandler(webapp2.RequestHandler):
def post(self):
name = self.request.get('content')
self.response.out.write("Your name is: " + name)
def get(self):
self.response.write("Hello World")
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)