我到处都搜索了,但找不到答案,我怎么能发出HTTP请求?我尝试了几种可能性,但都不起作用。我总是出错。
InputStream is = null;
// Only display the first 500 characters of the retrieved
// web page content.
int len = 500;
try {
URL url = new URL(myurl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Starts the query
conn.connect();
int response = conn.getResponseCode();
Log.d("Debug:", "The response is: " + response);
is = conn.getInputStream();
// Convert the InputStream into a string
String contentAsString = readIt(is, len);
return contentAsString;
// Makes sure that the InputStream is closed after the app is
// finished using it.
}
catch(Exception ex)
{
Log.v("Message: ", ex.getMessage());
return "Helemaal niks!";
}
finally {
if (is != null) {
is.close();
}
}
02-27 17:52:58.611 13571-13571/com.example.app E/AndroidRuntime﹕ 致命异常:主java.lang.IllegalStateException:无法在android.view.view$1.onClick(view.java:3838)在android.view.view.performClick(view.java:4475)在android.view.view$performClick.run(view.java:18786)在android.os.Handler.handleCallback(Handler.java:730)在android.os.Handler.dispatchMessage上执行活动方法android.app.ActivityThread.main(ActivityThread.java:5419)中的android.os.Looper.loop(Looper.java:137)中的Handler.java:92;java.lang.reflect.Method.invokenactive(Native Method)中的java.lang.reflect.Method.invoke(Method.java:525)中的com.android.internal.os.zyoteinit$MethodAndArgsCaller.run(zyoteinit.java:1187)位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003),位于dalvik.system.NativeStart.main(本机方法)
如果只想发出HTTP get请求,可以使用此代码代替代码。
try{
String result = null;
HttpClient httpClient = new DefaultHttpClient();
String myUrl = "your url";
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(myUrl);
HttpResponse response = httpClient.execute(httpGet, localContext);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = null;
while ((line = reader.readLine()) != null) {
result += line + "\n";
}
return result;
}catch(Exception ex)
{
Log.v("Message: ", ex.getMessage());
return "Helemaal niks!";
}
所有的webservice调用等都应该在AsyncWork中完成。
这有助于它在不使应用等待的情况下执行。
下面是一个示例代码,可以帮助您了解如何进行网络电话。
try {
HttpClient httpclient = new DefaultHttpClient();
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 2000);
HttpConnectionParams.setSoTimeout(httpParameters, 2000);
httpclient = new DefaultHttpClient(httpParameters);
HttpGet request = new HttpGet(Constants.CHECK_UPDATE_URL);
String responseString = null;
HttpResponse response = httpclient.execute(request);
StatusLine statusLine = response.getStatusLine();
if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
// Logging Server Responded
LogActions.systemActions("Server Responded");
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
//do your tasks here
}
} catch (Exception e) {
Log.e("Exception", "An impossible exception", e);
}
问题内容: 由于jQuery中的Ajax请求,存在未定义的错误。但是它在本地工作。jquery1.3.2.js @ 3633行中的错误引用 我的代码是: 代码中的警报向我显示(0,“未定义”); 我做错了什么? 问题答案: 如果您的ajax请求在完成之前被取消,则可能会发生这种情况。当用户通过刷新,单击链接或更改浏览器中的URL离开页面时,jQuery引发错误事件。通过为ajax调用实现错误处理程
但当我运行它时,它会给我这个错误: E/AndroidRuntime:致命异常:主进程:com.example.webTestConnection,PID:23550 Android.os.networkonMaintHreadexception,Android.os.strictmode$AndroidBlockGuardPolicy.onNetwork(strictmode.java:1166
问题内容: 我开始使用AWS Lambda,并且尝试从处理程序功能请求外部服务。根据,HTTP请求应该可以正常工作,而且我还没有找到其他说明的文档。(实际上,人们已经发布了使用TwilioAPI发送SMS的代码。) 我的处理程序代码是: 我在CloudWatch日志中看到以下4行: 我希望在那里有另一行: 但这是缺失的。如果我使用的是本机上节点中没有处理程序包装的基本部分,则代码将按预期工作。 在
你好,我正在尝试做一个简单的Http GET请求,但是无法在ionic v2 Beta中运行... 这是我的应用程序.js: 这是我的页面1.js: 将http:http添加到构造函数时- 错误:找不到模块“./page1/page1” 我也在Page1.js尝试过: ,然后在第 1 页中的(单击)上调用生成生成请求().html但它返回这些注释: 例外:评估“单击”时出错 this.http未定
问题内容: 跨域AJAX POST请求在Web浏览器(包括手机上的浏览器)上可以很好地工作,但不适用于使用以下工具构建的本机应用程序 我创建了一个登录表单,用户必须输入他们的登录凭据,然后由heroku上托管的服务器对其进行验证,如果输入了有效的凭据,则返回json 。 我的Ajax脚本: 解决此问题所采取的步骤: 域白名单 -config.xml 告诉jQuery允许跨域 要么 禁用缓存 任何帮
我试图使用cURL获取一个HTTP请求响应,这很好。然而,当我在Python中使用“请求”包时,我没有得到任何响应(它只是超时,没有错误或返回响应)。 我的cURL代码如下: 当我在cURL代码中使用-v时,我得到以下消息: 试图144.126.138.12... TCP_NODELAY集 连接到144.126.138.12(144.126.138.12)端口17001(#0) POST/api/