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();
}
}
}
}