eclipse HTTP文件下载500内部服务器错误

rryofs0p  于 2023-10-18  发布在  Eclipse
关注(0)|答案(2)|浏览(191)

我正在写一个Android应用程序,它和我们公司的iPad应用程序完全一样。但是我在Android上开发时遇到了一个问题。该应用程序从Web服务器下载文件。它将调用一个URL,如下所示:
https://www.somedomain.com/API/Download.aspx?param1=test&param2=test2等...
在iPad上,这是完美的工作(我使用ASIHTTPRequest类)。但在Android上,它只给我带来了问题。
只要我想用android下载文件,它就会下载一个带有500内部服务器错误的HTML文档的文件,而不是PDF文件。
我检查了URL,它们看起来和iPad上的完全一样。
我唯一能想象的是,用户下载的文件是“即时”创建的。因此,需要一些时间(10或20秒)来生成文件,然后下载文件。
在Android上,我这样做:
我有一个扩展类:

extends AsyncTask<String, Integer, JSONObject>

在一个方法中,我这样做:

HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);

InputStream data = response.getEntity().getContent();       
File file = new File(context.getDir("docs", Context.MODE_PRIVATE), FileName);

OutputStream output = new FileOutputStream(file);
ByteStreams.copy(data, output);
Closeables.closeQuietly(output);

但这给了我一个500内部服务器错误文档,而不是所需的PDF文件。我错过了什么?(对不起,我刚开始为Android开发,所以我不是这种情况下的Maven;- ))
提前感谢!

hpcdzsge

hpcdzsge1#

事实上,来自服务器的响应状态代码是问题所在,这意味着这应该与Android的东西无关,而只与您发送的请求有关。我注意到,虽然这可能是由于故意遗漏,您正在执行POST请求,但没有添加任何POST参数。这应该是GET吗?我注意到端点是一个ASPX路径,查询字符串中有GET参数。也许你的服务器被设置为只响应GET而不响应POST。在iOS代码中如何做到这一点?GET和POST之间没有区别吗?或者这是通过你正在使用的库从你那里抽象出来的?

zlwx9yxi

zlwx9yxi2#

好了,现在可以用了……愚蠢的东西...我不断地创建一个新的HttpClient,这样会话就不会存储在连接之间。这就是为什么服务器返回500内部服务器错误,因为服务器不知道用户。
谢谢大家的帮助!

相关问题