gpt4 book ai didi

java - 连接到远程服务器的 Android 应用程序

转载 作者:行者123 更新时间:2023-12-01 19:09:12 24 4
gpt4 key购买 nike

我正在尝试在 Platform 2.2 Froyo 上构建 Android 应用程序。该应用程序应该连接到远程服务器,从中获取数据并以不同的语言向用户显示。

  • 所以我的问题 - 我需要学习哪些技术才能构建上述应用程序。

注意 - 我已经安装了 Android 平台并构建了简单的应用程序,例如 Hello,world。我了解Java。我也在使用 Eclipse。

谢谢您的回答。请不要发表粗鲁的评论...

//--------------使用HTTP协议(protocol)连接网络的代码------------------//

package in.androidbook.Networking;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity
{
ImageView img;
/* This is for making asynchronous calls to ensure that connection to server will not return until data is received */

private class BackgroundTask extends AsyncTask<String, Void, Bitmap>
{
protected Bitmap doInBackground(String...url)
{
Bitmap bitmap = DownloadImage(url[0]);
return bitmap;
}

protected void onPostExecute(Bitmap bitmap)
{
ImageView img = (ImageView) findViewById(R.id.img);
img.setImageBitmap(bitmap);
}
}
// Code for making HTTP connection
private InputStream OpenHttpConnection(String urlString) throws IOException
{
InputStream in = null;
int response = -1;

URL url = new URL(urlString);//We take an object of class URL
URLConnection conn = url.openConnection(); //Create a connection object and open the connection

if(!(conn instanceof HttpURLConnection)) throw new IOException("Not an Http connection");
try
{
HttpURLConnection httpConn = (HttpURLConnection) conn; //httpConn object is assigned the value of conn. Typecasting is done to avoid conflict.
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();

if(response == HttpURLConnection.HTTP_OK)
in = httpConn.getInputStream();
}
catch (Exception ex)
{
throw new IOException("Error connecting");
}
return in;
}
//------------------------------------------ OpenHttpConnection method completed----------------------------------------------------------//
//----------------------------------------------------------------------------------------------------------------------------------------------------------------//
//-------------------------------Method to download an image--------------------------------------------------------------------------------------//
private Bitmap DownloadImage(String URL)
{
Bitmap bitmap = null;
InputStream in = null;
try
{
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in);
in.close();
}
catch(IOException e1)
{
Toast.makeText(this, e1.getLocalizedMessage(), Toast.LENGTH_LONG).show();
//Toast displays a short msg to user. this refers to current object.
e1.printStackTrace();
}
return bitmap;
}


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Bitmap bitmap = DownloadImage("http://i.zdnet.com/blogs/3-29-androids.jpg");
img = (ImageView) findViewById(R.id.img);
img.setImageBitmap(bitmap);
}
}

最佳答案

更新(基于评论):当我们谈论客户端时,我确认我的答案。如果该网站不是您的,您需要做的第一件事是检查它如何/是否允许通过 API 进行某种通信,以及采用哪种格式(最常用的是 XML 和 JSON)。有了这些信息,事情应该很容易。使用 Google map 或 Twitter 看一下 Android 示例,您应该会找到一些。

好吧,这取决于您的确切意思:您是否要求客户端(应用程序)所需的技能 - 认为服务器已经构建,或者将由其他人构建,或者需要所需的技能对于服务器?

在前一种情况下,我建议使用 REST API 和 JSON 进行通信。看一下 apache HTTPGet、HTTPClient 和 HTTPResponse 类以及 org.json(所有都包含在 Android 中)。如果您想使用它们进行测试,请使用一些公共(public) API(这样您就不必担心服务器),例如 Google Map API(它很简单,并且在某些限制下可以免费使用)。

在后一种情况下,我支持 ColWinters:如果您了解 java,也可以在那里使用它,并使用 Tomcat 作为服务器和基本的 Servlet。您会在 Internet 上找到大量示例。

关于java - 连接到远程服务器的 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860370/

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