Java 如何使用HttpUrlConnection在android中构建REST客户端
我想构建一个使用RESTAPI的android应用程序 我正在使用Java 如何使用HttpUrlConnection在android中构建REST客户端,java,android,rest,android-studio,androidhttpclient,Java,Android,Rest,Android Studio,Androidhttpclient,我想构建一个使用RESTAPI的android应用程序 我正在使用HttpURLConnection进行基本身份验证并获取/放置一些数据,但我觉得我做得不对。 我为每个请求调用了两个类ConnectionPUT和ConnectionGET,因为每个HttpURLConnection实例都用于发出单个请求 使用HttpURLConnection使用Android构建REST客户端的正确方法是什么?这是在Android中使用HttpURLConnection调用Http GET的示例代码 URL
HttpURLConnection
进行基本身份验证并获取/放置一些数据,但我觉得我做得不对。
我为每个请求调用了两个类ConnectionPUT
和ConnectionGET
,因为每个HttpURLConnection实例都用于发出单个请求
使用HttpURLConnection使用Android构建REST客户端的正确方法是什么?这是在Android中使用HttpURLConnection调用Http GET的示例代码
URL url;
HttpURLConnection urlConnection = null;
try {
url = new URL("your-url-here");
urlConnection = (HttpURLConnection) url
.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader isw = new InputStreamReader(in);
int data = isw.read();
while (data != -1) {
char current = (char) data;
data = isw.read();
System.out.print(current);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
但是我强烈建议不要重新发明轮子,为你的android应用程序创建REST
客户端,而应该尝试使用经过良好调整且可靠的库,如Reformation和Volley,用于联网
它们是高度可靠和经过测试的,并且删除了您必须为网络通信编写的所有样板代码
要了解更多信息,我建议您学习下面关于改装和截击的文章
使用HttpURLConnection的REST客户端
try {
URL url = new URL("YOUR_URL");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuffer data= new StringBuffer(1024);
String tmpdata="";
while((tmpdata=reader.readLine())!=null) {
data.append(tmpdata).append("\n");
}
reader.close();
}catch(Exception e){
e.printStackTrace();
} finally {
if (conn!= null) {
conn.disconnect();
}
}
没有一个“正确的方法”可以做到这一点。有很多方法可以实现这一点,无数的库可以帮助您实现这一点,更不用说涉及这一主题的无数的SO和答案了。您应该具体说明您遇到的问题,并向我们展示确切的错误。@toKrause谢谢,我想要那些“无数库”,以便我可以测试它们@Farhadfaghi我多次调用api,我已经参与了一些web项目,桌面应用程序和数据库:我们与数据库建立了1个连接!所以我觉得我错过了一些东西。这是我在REST API上的第一个项目^^“正如我已经提到的,已经有很多项目涉及到这个主题;至少提到了很多可用的库。谢谢你的回答!!