带Java后台打开URL

问题描述 投票:0回答:2

这里在Java中有问题。我是一个初学者,不知道为什么它不起作用。

我想要的是:我有一个主页,我想更改模块的某些属性。因此,我有一个.php文件。我要做的就是转到URL(看起来像http://subdomain.domain.de/path_to_module/file.php?property=XY&api=Z)。为了使此操作更快,更轻松,尤其是对于朋友,我想编写一个小应用程序。

我查了一下google到现在为止:

public void onClick(View v) {
               try {
                   URL url = new URL("http://subdomain.domain.de/path_to_module/file.php? 
    property=XY&api=Z");

                   HttpURLConnection connection = null ;
                   try {
                       connection = (HttpURLConnection) url.openConnection();
                   }
                   finally
                   {
                       if( connection != null )
                           connection.disconnect() ;
                   }
               } catch (MalformedURLException e){
               } catch (IOException e){}
            }

但是那不起作用。该应用程序不会崩溃或发生任何事情。看起来好像可行,但是当您浏览网站时,它并没有任何改变。手动转到URL是有效的,所以这不是问题...

您有什么想法,如何解决问题?

请原谅拼写错误或类似之词,我不是母语人士。

java url
2个回答
0
投票

嘿@David Conrad谢谢您的帮助。

如果我说对了,新的代码应如下所示:

public void onClick(View v) {
               try {
                   URL url = new URL("http://subdomain.domain.de/path_to_module/file.php? 
    property=XY&api=Z");

                   HttpURLConnection connection = null ;
                   try {
                       connection = (HttpURLConnection) url.openConnection();
                       connection.connect();
                   }
                   finally
                   {
                       if( connection != null )
                           connection.disconnect() ;
                   }
               } catch (MalformedURLException e){
               } catch (IOException e){}
            }

我尝试过,但是没有用。我是否误解了您在说什么?


0
投票

URL openConnection()方法无法建立连接:

应注意,URLConnection实例在创建时未建立实际的网络连接。仅在调用URLConnection.connect()时会发生这种情况。

您必须在它返回的openConnection()对象上调用URLConnection.connect()

如果尚未建立此URL引用的资源,则打开指向该URL所引用资源的通信链接。

HttpURLConnection不会立即开始传输数据,因为您可能想设置HTTP标头,或者可能要执行POST或PUT而不是GET。您可能必须获取输入流,甚至可能要从中读取输入流,以使其从服务器发出GET请求(如果您要这样做的话)。

URLConnection.connect()

这将从连接中读取所有数据并将其写入缓冲区,如果您不关心其内容,则可以将其丢弃。

© www.soinside.com 2019 - 2024. All rights reserved.