gpt4 book ai didi

android - 如何创建 Rest api,以及如何使用 android 应用程序使用 rest api

转载 作者:行者123 更新时间:2023-11-30 03:39:03 26 4
gpt4 key购买 nike

我们如何为我们的网站创建 rest api,我想使用 rest api 将服务器与我的 android 应用程序连接。如何将这些 rest api 与我的 android 应用程序连接,这些背后的方法是什么。

最佳答案

这里有一个不错的 rest api,具有执行 Http POST 和 GET 的基础知识:

public class RestClient {

private ArrayList<NameValuePair> params;
private ArrayList<NameValuePair> headers;
private String url;
private String response;
private int responseCode;

public String GetResponse()
{
return response;
}

public int GetResponseCode()
{
return responseCode;
}

public RestClient(String url)
{
this.url = url;
params = new ArrayList<NameValuePair>();
headers = new ArrayList<NameValuePair>();
}

public void AddParam(String name, String value)
{
params.add(new BasicNameValuePair(name, value));
}

public void AddHeader(String name, String value)
{
headers.add(new BasicNameValuePair(name, value));
}

public void Execute(RequestType requestType) throws Exception
{
switch(requestType)
{
case GET:
{
String combinedParams = "";
if (!params.isEmpty())
{
combinedParams += "?";
for (NameValuePair p : params)
{
String paramString = p.getName() + "=" + URLEncoder.encode(p.getValue(),"UTF-8");

if (combinedParams.length() > 1)
combinedParams += "&" + paramString;
else
combinedParams += paramString;
}
}
HttpGet request = new HttpGet(url + combinedParams);

for (NameValuePair h: headers)
request.addHeader(h.getName(),h.getValue());

ExecuteRequest(request, url);
break;
}
case POST:
{
HttpPost request = new HttpPost(url);

for (NameValuePair h : headers)
{
request.addHeader(h.getName(), h.getValue());
}

if(!params.isEmpty()){
request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
}

ExecuteRequest(request, url);
break;
}
}
}

public void ExecuteRequest(HttpUriRequest request, String url)
{
HttpClient client = new DefaultHttpClient();
HttpResponse httpResponse;
try
{
httpResponse = client.execute(request);
responseCode = httpResponse.getStatusLine().getStatusCode();

HttpEntity entity = httpResponse.getEntity();

if (entity != null)
{
InputStream in = entity.getContent();
response = ConvertStreamToString(in);
in.close();
}
}
catch (ClientProtocolException e) {
client.getConnectionManager().shutdown();
e.printStackTrace();
} catch (IOException e) {
Log.e("REST_CLIENT", "Execute Request: " + e.getMessage());
client.getConnectionManager().shutdown();

e.printStackTrace();
}
}

private String ConvertStreamToString(InputStream in)
{
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();

String line = null;
try
{
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
in.close();
}
catch (IOException e)
{
Log.e("REST_CLIENT", "ConvertStreamToString: " + e.getMessage());
e.printStackTrace();
}
}
return sb.toString();
}

关于android - 如何创建 Rest api,以及如何使用 android 应用程序使用 rest api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com