我已经从API23更改为22,因为他们说httpclient不可用。当我切换到API22时,我遇到了HttpClient、HttpPost和NameValuePair的问题。我找到了使用HttpURLConnectionHandler的解决方案。但我不知道如何将其用于以下方法。publicvoidsend(Viewv){HttpClienthttpclient=newDefaultHttpClient();//puttheaddresstoyourserverandreceiverfilehereHttpPosthttppost=newHttpPost("http://yoursite
我正在编写一个连接到受密码保护的cPanel服务器(Apache2.2.22)页面的Android应用程序。当身份验证凭据正确时,连接没有问题。但是,当凭据不正确时,我的Android应用程序似乎在HttpURLConnection.getResponseCode()方法中卡住。服务器上的日志显示从我的Android设备发送了数百个请求,所有请求都按预期返回了401,但出于某种原因,这并没有反射(reflect)在我的应用程序中。这是我的代码,在AsyncTask中执行:@OverrideprotectedIntegerdoInBackground(String...bookInfoS
我有一个url,它的一个参数包含一个空格字符。如果我按原样发送,使用HttpURLConnection,则此参数传递错误。如果我用%20手动替换空格,它会按预期工作,所以我想知道是否有更简洁的方法来执行此操作,尽管我希望HttpURLConnection会自动执行此操作。也许我错过了一种方法?在寻找这个时,我不断遇到已弃用的URLEncoder.Encode,除了对整个URL进行编码,包括http的://之外,我找不到任何其他方法来做我所做的事情。是否有一种干净的方法来进行替换,还是我应该手动进行?网址例如:http://www.domain.com?param1=name'last&
我通过HttpURLConnection向服务器发出httpget请求,我需要读取响应(InputStream)两次:用于记录目的和解析响应。返回的InputStraem是org.apache.harmony.luni.internal.net.www.protocol.http.ChunkedInputStream的实例,它不支持标记(是.markSupported()返回false)。因此我不能mark()和reset()流,在日志中写入响应后我无法解析它。当然,我可以将响应读入String或其他内容,记录它们并稍后解析。但是当我使用流时,我正在避免潜在的OutOfMemomryE
我尝试使用HttpUrlConnection使我的应用程序与我的php服务器通信。我编写了一个在我的计算机上运行良好的类,但是当我在我的手机上执行它时它根本不起作用。这是我的代码:Stringdata="username="+URLEncoder.encode(username,"UTF-8")+"&password="+URLEncoder.encode(password,"UTF-8")+"&remember=1";connection=(HttpURLConnection)newURL(BASE_URL+"user/login/app").openConnection();con
我遇到了一些死胡同,需要一点帮助(求求你)!我对Android开发(以及一般编码)还很陌生。基本上我需要使用HttpURLConnection将XML数据发布到URL,但无法让它工作。我的应用程序从GET请求读取和传递XML数据,但发现POST部分很困难。我看过创建一个NameValuePair数组,但不确定如何使用我需要发布的XML结构来创建它。XML数据将如下所示:jobNumbertaskNumber3systemDateFormattedtimeToLoguserNote到目前为止,我的代码已经有了这个。try{URLurl=newURL(theUrl);HttpURLConn
我有一个使用Httpurlconnectionget方法调用api的方法,请找出我写的方法:privateStringsendGet(CallWebserviceActivitycontext)throwsException{Stringurl="http://myurl/";URLobj=newURL(url);HttpURLConnectioncon=(HttpURLConnection)obj.openConnection();con.setRequestMethod("GET");con.setDoOutput(true);intresponseCode=con.getResp
我有一个奇怪的问题:在我的Android应用程序中实现网络服务器的接口(interface),我使用HttpsUrlConnection连接到它。该连接使用额外的HTTP基本授权(使用setRequestProperty),但除此之外是通过HTTPS的普通GET请求。在使用Android4.0.3的模拟器上使用它时效果非常好,但在Android2.3.5(模拟器和真实设备)上出现“错误请求”HTTP400错误时失败。我无法控制服务器,所以我看不出问题到底是什么。有没有人遇到过这样的问题或者知道如何打印/记录实际发送的请求?TIA,帕特里克 最佳答案
我正在执行GET请求:HttpURLConnectionurlConnection=(HttpURLConnection)url.openConnection();urlConnection.setConnectTimeout(CONNECT_TIMEOUT);urlConnection.setReadTimeout(READ_TIMEOUT);urlConnection.connect();到那时,凭据已经设置为:Authenticator.setDefault(newAuthenticator(){protectedPasswordAuthenticationgetPassword
根据我对HTTP的理解,它是这样工作的:客户端组装一条消息,包括一些header字段和(可能)正文并将其发送到服务器。服务器对其进行处理,组装自己的响应消息并将其发送回客户端。所以我来问这个问题:为什么HttpURLConnection中突然有流?这对我来说毫无意义。它使它看起来像有一个连续的开放channel。消息实际上是在什么时候发送到服务器的?在connect上?在getInputStream上?尝试从流中读取时?如果我有有效负载,它会在不同的时间发送吗?我可以只用一个连接进行写-读-写-读吗?我确定我还没有完全理解它,但现在它对我来说似乎是一个糟糕的API。我更希望看到这样的东