【发布时间】:2021-05-26 16:51:28
【问题描述】:
我正在使用 java 在 android studio 上制作一个应用程序,我想制作一个可以编辑 txt 文件的网站。我希望 android 应用程序连接到 Web 服务器并检索这些文件。我只是不明白如何将两者联系在一起。就像我如何从我的 node.js 服务器获取一个 txt 文件到我的 android 应用程序一样。我最初的想法想成为对服务器的 HTTP 请求,但我不知道如何开始编码。 任何帮助将不胜感激 提前谢谢你
JAVA
public class MainActivity extends AppCompatActivity {
private static final String SERVER = "http://10.0.2.2:3000/";
private TextView tvServerResponse;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvServerResponse = findViewById(R.id.textView);
Button contactServerButton = findViewById(R.id.button);
contactServerButton.setOnClickListener(onButtonClickListener);
}
View.OnClickListener onButtonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
HttpGetRequest request = new HttpGetRequest();
request.execute();
}
};
public class HttpGetRequest extends AsyncTask<Void, Void, String> {
static final String REQUEST_METHOD = "GET";
static final int READ_TIMEOUT = 15000;
static final int CONNECTION_TIMEOUT = 15000;
@Override
protected String doInBackground(Void... params){
String result;
String inputLine;
try {
// connect to the server
URL myUrl = new URL(SERVER);
HttpURLConnection connection =(HttpURLConnection) myUrl.openConnection();
connection.setRequestMethod(REQUEST_METHOD);
connection.setReadTimeout(READ_TIMEOUT);
connection.setConnectTimeout(CONNECTION_TIMEOUT);
connection.connect();
// get the string from the input stream
InputStreamReader streamReader = new InputStreamReader(connection.getInputStream());
BufferedReader reader = new BufferedReader(streamReader);
StringBuilder stringBuilder = new StringBuilder();
while((inputLine = reader.readLine()) != null){
stringBuilder.append(inputLine);
}
reader.close();
streamReader.close();
result = stringBuilder.toString();
} catch(IOException e) {
e.printStackTrace();
result = "error";
}
return result;
}
protected void onPostExecute(String result){
super.onPostExecute(result);
tvServerResponse.setText(result);
}
}
}
JS:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});`
我得到了这段代码,但它从行 connection.connect() 中抛出了 java 代码中的问题
我认为它无法连接到服务器,但我不明白为什么
【问题讨论】:
标签: javascript java android node.js