gpt4 book ai didi

android - 使用 Android 应用程序访问服务器上的数据库的最佳方式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:56 25 4
gpt4 key购买 nike

我需要开发一个应用程序来访问存储在办公室服务器上的 SQL Server 数据库。调用员工远程桌面进入终端服务器,并使用为其创建数据库的桌面应用程序访问数据库。桌面应用程序使用 ODBC 连接访问数据库。我正在编写一个 android 应用程序,它将允许一小部分访问桌面应用程序中可用的这个数据库,我正在寻找将我的应用程序连接到这个数据库的方法,无论它是否使用 ODBC 连接(可能使用.Net),或其他方式。

编辑:对于那些在我解释完我的问题之前回复的人,我很抱歉,它是不小心发布的,你们中的一些人在我完成编辑之前就回答了。

最佳答案

你必须在服务器端编写一个网络服务。可以将数据作为 Json 数据包发送到设备,并在设备中解析 json 数据包并访问数据。您对网络服务的调用应该是一个 http 调用,例如

http:\server\metnod\get_somedata?name=something

并且服务器应该查询数据库以获取此参数并将响应作为 Json 发送给您。 解析 json 并获取您的详细信息。

编辑:在服务器响应 header 中将内容类型设置为“application/json”。这是客户端向服务器发送 http post 请求的示例。这里的 jsonobjSend 是我构造的带有一些细节的发送到服务器的 json。例如 {table:"sometable", id:90 }。 jsonobjRecv 是服务器发送的json

    HttpPost httpPostRequest = new HttpPost(url);
StringEntity se;
se = new StringEntity(jsonObjSend.toString());

// Set HTTP parameters
httpPostRequest.setEntity(se);
httpPostRequest.setHeader("Authorization", usercredential);
httpPostRequest.setHeader("Accept", "application/json");
httpPostRequest.setHeader("Content-type", "application/json");
httpPostRequest.setHeader("Accept-Encoding", "gzip"); // only set this parameter if you would like to use gzip compression
long t = System.currentTimeMillis();
response = (HttpResponse) httpclient.execute(httpPostRequest);
Log.i(TAG, "HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]");
//Get hold of the response entity (-> the data):
HttpEntity entity = response.getEntity();

if (entity != null) {
// Read the content stream
InputStream instream = entity.getContent();
Header contentEncoding = response.getFirstHeader("Content-Encoding");
if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) {
instream = new GZIPInputStream(instream);
}

// convert content stream to a String
String resultString= convertStreamToString(instream);
Log.v(null, "resultString "+resultString);
instream.close();


// Transform the String into a JSONObject
if(resultString!=null){
jsonObjRecv = new JSONObject(resultString);

}

// Raw DEBUG output of our received JSON object:
Log.i(TAG,"<jsonobject>\n"+jsonObjRecv.toString()+"\n</jsonobject>");

return jsonObjRecv;

创建/解析 json 检查 json.org

关于android - 使用 Android 应用程序访问服务器上的数据库的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8518084/

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