相对较新的Java程序员和我已经被教导过你不能创建一个抽象类的实例.我也做了一些研究,我了解到在大多数情况下,当它出现一个抽象类时,它实际上是一个匿名的子类.但这是我遇到的问题:
Java的URL类有一个openConnection返回的方法URLConnection.URLConnection是一个抽象类,Java文档也将其所有子类列为抽象类......所以我真的迷失了.什么回来了?
我正在用Java解决这个问题.我想从URL获取一些HTML信息.这段代码工作了很长时间,但突然间,它停止了工作.
当我使用浏览器访问此URL时,它会打开没有问题.
代码:
URL site = new URL(this.url);
java.net.URLConnection yc = site.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
String objetivo = "<td height=\"28\" colspan=\"2\"";
while ((inputLine = in.readLine()) != null && !inputLine.contains(objetivo)) {
}
inputLine = in.readLine();
Run Code Online (Sandbox Code Playgroud)
例外情况:
java.io.IOException: Server returned HTTP response code: 500 for URL: http://www.myurl.com
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at Sites.websites.Site1.getData(Site1.java:53)
at util.Util.lerArquivo(Util.java:278)
at util.Util.main(Util.java:983)
Run Code Online (Sandbox Code Playgroud)
怎么了?主人挡住了我吗?
如果我使用浏览器向服务器发送信息(例如使用登录,密码页面),我只需填写用户文本框和密码文本框,然后单击登录按钮.
我想发送此信息,但无需使用浏览器.我想"填充"文本框,但无需在浏览器中手动完成.可能正在使用Servlet.
我的问题是:如何在文本框中发送信息,例如,从Servlet发送到网站?
我正在开发一个J2ME客户端,它必须使用HTTP将文件上传到Servlet.
使用Apache Commons FileUpload覆盖servlet部分
protected void doPost(HttpServletRequest request, HttpServletResponse response)
{
ServletFileUpload upload = new ServletFileUpload();
upload.setSizeMax(1000000);
File fileItems = upload.parseRequest(request);
// Process the uploaded items
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
File file = new File("\files\\"+item.getName());
item.write(file);
}
}
Run Code Online (Sandbox Code Playgroud)
Commons Upload似乎只能上传多部分文件,但没有application/octect-stream.
但是对于客户端,没有Multipart类,在这种情况下,也不可能使用任何HttpClient库.
其他选项可能是使用HTTP Chunk上传,但我还没有找到一个明确的例子,说明如何实现它,特别是在servlet端.
我的选择是: - 为http块上传实现一个servlet - 为http多部分创建实现一个原始客户端
我不知道如何实现上述选项.有什么建议吗?
如何将URL输出的JSON保存到文件中?
例如来自Twitter搜索API(这http://search.twitter.com/search.json?q=hi)
语言并不重要.
编辑//我如何向EOF追加更新?
编辑2 //真的很棒的答案,但我接受了我认为最优雅的那个.
我知道在HtmlUnit中我可以fireEvent在表单上提交,它将被发布.但是如果我禁用了javascript并想使用一些内置函数发布表单呢?
我已经检查了javadoc并且没有找到任何方法来做到这一点.奇怪的是HtmlForm中没有这样的功能......
我在htmlunit页面上阅读了javadoc和教程,我知道我可以使用getInputByName()并点击它.BuT有时会有没有提交类型按钮的表单,甚至有这样的按钮但没有name属性.
我在这种情况下寻求帮助,这就是我使用的原因,fireEvent但它并不总是有效.
我有一个已经采用正确的URLEncoded Form格式的字符串,并希望通过Android上的POST请求将其发送到PHP服务器.我知道在Android上发送URL编码表单的方法使用了UrlEncodedFormEntity,我知道如何使用它.但问题是,数据进入已经URL编码,并通过&符号加入的功能,所以使用UrlEncodedFormEntity会涉及到很多额外的工作,把它变成一个List的NameValuePairs,我宁愿不要.
那么,如何发送一个正确的POST请求发送此字符串作为内容正文?
我已经尝试过使用StringEntity,但是PHP服务器没有获得任何数据(空$_POST对象).
我正在测试针对http://test.lifewanted.com/echo.json.php这简直是
<?php echo json_encode( $_REQUEST );
Run Code Online (Sandbox Code Playgroud)
以下是已编码数据的示例:
partnerUserID =电子邮件%40example.com&partnerUserSecret =输入mypassword&命令=身份验证
我是android开发的新手。而且我已经在计算机上安装了eclipse,java 11和android sdk工具。但是,当我尝试构建项目时,它说要升级工具。但是我已经安装了最新的SDK。
当我在网上正在读我发现,Android不完全支持Java SE和它主要针对Java SE 6和7支持- 但是这是一个老帖子。
我发现android不完全支持java 11。
我的问题是,什么是完全支持android的JDK版本,我是否必须在计算机中安装2个JDK版本?
我正在尝试创建一个HttpServlet,它将所有传入的请求按原样转发给另一个在不同域上运行的serlvet.
如何实现这一目标?RequestDispatcher的forward()仅在同一服务器上运行.
编辑:我不能介绍任何依赖项.
我ThreadSafeClientConnManager在我的应用程序中使用了一些其他类,如HttpStatus,SSLSocketFactory,PlainSocketFactory,SchemeRegistry等.但是从API 22开始,它们都被标记为已弃用,并且我没有看到任何明确指示替换的内容他们.文档jas说"请使用openConnection().请访问此网页以获取更多详细信息",这并不能说清楚该怎么做.openConnection()只是指向URL类,而网页链接是从2011年开始讨论Apache类和之间的差异HttpUtrlConnection.那么,这是否意味着HttpUrlConnection从现在开始我们应该是useign 类?如果是这种情况,我认为它不是线程安全的(这就是我使用它的原因ThreadSafeClientConnManager).
有人可以帮我澄清一下吗?