1、我想問一下,誰有android開發的實例,其中的android客戶端的伺服器是由asp.net做的
server端不是會提供介面么? 通過http post get 方式去調用就好了。然後解析返回來的數據
2、開發android後台伺服器用什麼好,php還是c# .net?
看你熟悉什麼用什麼,都用JSON傳遞數據就行了。
3、android開發中,如何連接伺服器,從伺服器讀取到數據
答:
一,簡單應用 ,用 http 連接就可以。 就是用httpurlconnection 包就行
二,erp 應用,用 webservice,android 調用 webservice 實現連接伺服器。
三,我是.net和 java通吃,…^-^,還用一種辦法,就是用 .net framwork里的 WCF 也可以與android 通信,原理和webservice 差不多。
求加分。。。。。。。。
4、Android客戶端如何與.NET進行通信?
可使用android自帶的httpclient框架,通過Http協議與伺服器通信。
1. GET 方式傳遞參數
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "數據")); //增加參數1
params.add(new BasicNameValuePair("param2", "value2"));//增加參數2
String param = URLEncodedUtils.format(params, "UTF-8");//對參數編碼
String baseUrl = "伺服器介面完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//將URL與參數拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //發起GET請求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//獲取伺服器響應內容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2. POST方式 方式傳遞參數
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加參數1
params.add(new BasicNameValuePair("param2", "第二個參數"));//增加參數2
try {
HttpPost postMethod = new HttpPost(baseUrl);//創建一個post請求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //執行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應內容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
5、android上傳文件至.net webservice,怎麼樣實現壓縮上傳,.net伺服器解壓縮?
查看:
http://www.oschina.net/question/723394_65328
6、請專家幫我分析一下伺服器端和客戶端,(像.net,android,ios這些平台都能做哪方面的開發)
.Net目前主流開發語言是C#, C++和C#都可以做應用和服務端程序,做移動端開發和PC端開發,伺服器方面無關,安卓和蘋果手機端開發當然需要支持開發的開發環境了,安卓用Java,ios可以用object c。
C#簡單易入門,開發軟體應用比較快速,但是不能用於安卓和Ios開發
7、Android應用的伺服器端可以用C#寫嗎?還是只能用java寫?
都可以,但用JAVA寫會容易點,以為android本身也是推薦用java寫得,當伺服器端和客戶端都專用同一種屬語言時,會方便很多,特別是通訊部分的代碼,因為代碼可以在雙方通用,開發起來會容易非常多。
如果是普通應用,隨便用什麼寫都可以。如果是游戲伺服器,最好用java寫,在linux下運行的java很穩定,而且速度也很快,基本上能滿足任何類型游戲的要求
8、android客戶端 怎樣才能使用SSL與 net的伺服器端進行通信
這是ssl連接上
Thread thread = new Thread() {
@Override
public void run ( ) {
String Url = "網址";
String result = httpPOST(Url);
if (result == null) {
//顯示錯誤訊息
Log.d("result", "result null");
}else{
Log.d("result", "result =" +result);
}
}
};
thread.start(); //啟動執行緒
private String httpPOST(String url){
String str = "111";
try {
System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");
System.setProperty("javax.net.ssl.trustStore","keystore");
TrustManager easyTrustManager = new X509TrustManager()
{
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType){
}
public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException {
}
};
URL urla = new URL(url);
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[] { easyTrustManager }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory());
HttpsURLConnection shuc = (HttpsURLConnection) urla.openConnection();
shuc.setDoInput(true);
shuc.setDoOutput(true);
BufferedReader in = new BufferedReader(new InputStreamReader(urla.openStream()));
String line = "";
str = "";
while ((line = in.readLine()) != null) {
String[] names = line.split(":"); //讀取 https://www.test.com.tw/get_result.php?P1=XXXX&P2=YYYYY 以 # 分割的字串
str = str+line;
if (names[0].equals("ERROR") || names[0] == null ) {
}
}
return str;
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
建議先用http連上,在修改成https
http://stackoverflow.com/questions/11014953/asp-net-web-api-authentication
9、伺服器用netyy,android端能用nio嗎
管道流可以實現兩個線程之間,二進制數據的傳輸。
管道流就像一條管道,一端輸入數據,別一端則輸出數據。通常要分別用兩個不同的線程來控制它們。
使用方法如下:
[html] view plaincopy
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
public class PipedInputStreamTest {
public static void main(String[] args) {
//管道輸出流
PipedOutputStream out = new PipedOutputStream();
//管道輸入流
PipedInputStream in = null;
try {
//連接兩個管道流。或者調用connect(Piped..);方法也可以
in = new PipedInputStream(out);
Thread read = new Thread(new Read(in));
Thread write = new Thread(new Write(out));
//啟動線程
read.start();
write.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Write implements Runnable {
PipedOutputStream pos = null;
public Write(PipedOutputStream pos) {
this.pos = pos;
}
public void run() {
try {
System.out.println("程序將在3秒後寫入數據,請稍等。。。");
Thread.sleep(3000);
pos.write("wanghong".getBytes());
pos.flush();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
try {
if (pos != null) {
pos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class Read implements Runnable {
PipedInputStream pis = null;
public Read(PipedInputStream pis) {
this.pis = pis;
}
public void run() {
byte[] buf = new byte[1024];
try {
pis.read(buf);
System.out.println(new String(buf));
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (pis != null) {
pis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}