android и WCF
Добавлено: 19 апр 2014, 11:48
кто знает как можно получить доступ из андроид приложение к серверу WCF?
есть какие нибудь примеры ?
есть какие нибудь примеры ?
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Код: Выделить всё
public static final int CONNECTION_TIMEOUT = 30000;
private static final String CONTENT_TYPE_VALUE_JSON = "application/json; charset=utf-8";
private static final String HEADER_LOCALE = "Locale";
private static final String HEADER_CONTENT_TYPE = "Content-Type";
private static final String CHARSET = "UTF-8";
public InputStream executePost(final String url, String data)
{
Log.d(TAG, url);
HttpPost httpPost = new HttpPost(url);
if (data != null) {
try {
httpPost.setEntity(new StringEntity(data, CHARSET));
} catch (UnsupportedEncodingException e) {
}
}
return execute(httpPost);
}
private InputStream execute(HttpRequestBase http) {
setHeadersAndParam(http);
HttpContext localContext = new BasicHttpContext();
try {
mBuilder.setResponse(mBuilder.getClient().execute(http,
localContext));
Log.d(TAG, "status code: "
+ mBuilder.getResponse().getStatusLine().getStatusCode());
if (mBuilder.getResponse().getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
return mBuilder.getResponse().getEntity().getContent();
} else {
return null;
}
} catch (ClientProtocolException e) {
Log.e(TAG, e.getMessage());
} catch (IOException e) {
if (e != null)
Log.e(TAG, e.getMessage());
}
}
private void setHeadersAndParam(HttpRequestBase http) {
http.setHeader(HEADER_CONTENT_TYPE, CONTENT_TYPE_VALUE_JSON);
http.setHeader(HEADER_LOCALE, Locale.getDefault().getLanguage());
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters,
getConnectionTimeOut());
HttpConnectionParams.setSoTimeout(httpParameters,
getConnectionTimeOut());
http.setParams(httpParameters);
}
public InputStream executeGet(final String url) {
Log.d(TAG, url);
HttpGet httpGet = new HttpGet(url);
return execute(httpGet);
}
Код: Выделить всё
public class MainActivity extends FragmentActivity {
private String content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
new ResponseTask().execute("http://www.Ваш url.com");
}
class ResponseTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... urls) {
try {
// запрос на сервер
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
// post запрос
HttpPost httpPost = new HttpPost(urls[0]);
//ответ от сервера
content = defaultHttpClient.execute(httpPost, responseHandler);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return content;
}
@Override
protected void onPostExecute(String content) {
super.onPostExecute(content);
тут уже обрабатывайте свой JSON
}
}
}