我在visual c#2005中创建一个简单的程序,在Yahoo!上查找股票代码 财务,下载历史数据,然后绘制指定股票代码的价格历史记录.
我知道获取数据所需的确切URL,如果用户输入现有的股票代码(或者至少有一个有关Yahoo! Finance的数据),它的工作完全正常.但是,如果用户编写了一个股票代码,我会遇到运行时错误,因为该程序试图从不存在的网页中提取数据.
我正在使用WebClient类,并使用DownloadString函数.我查看了WebClient类的所有其他成员函数,但没有看到任何可用于测试URL的内容.
我怎样才能做到这一点?
有没有一种好方法可以避免崩溃应用程序的"主机未解决"错误?某种尝试连接到主机(如URL)并查看它是否有效的方法?
我在表单中有一个URL
http://www.mywebsite.com/util/conv?a=1&from=%s&to=%s
Run Code Online (Sandbox Code Playgroud)
并想检查它是否可用.
如果我尝试使用浏览器打开这些链接,链接会将我重定向到错误的请求页面,但是通过代码,我可以获得我需要的数据.
在HTTP请求过程中使用try-catch块非常慢,所以我想知道如何ping一个类似的地址来检查它的服务器是否处于活动状态.
我试过了
boolean reachable = InetAddress.getByName(myLink).isReachable(6000);
Run Code Online (Sandbox Code Playgroud)
但总是回报false
.
我也试过了
public static boolean exists(String URLName) {
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection();
con.setConnectTimeout(1000);
con.setReadTimeout(1000);
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
这会在进程结束时返回正确的值,如果服务器不可用,则位太慢.
编辑
我明白慢慢的原因是什么
a)如果服务器返回一些数据但在完成请求之前中断请求,则忽略超时并停留直到返回Exception
导致执行到达catch块的情况,这是导致此方法缓慢的原因,并且我仍然没有找到了有效的解决方案来避免这种情况.
b)如果我启动Android设备并在没有连接的情况下打开应用程序,则正确返回false值,如果应用程序打开且Internet连接处于活动状态且设备丢失其Internet连接,则发生与案例A相同的事情(如果我尝试终止并重新启动应用程序...我不知道为什么,我认为某些东西仍然被缓存)
所有这些似乎与事实相关,Java URLConnection
并未在读取时提供无故障安全超时.看看这个链接上的示例我已经看到使用线程以某种方式中断连接,但如果我添加简单new Thread(new InterruptThread(Thread.currentThread(), con)).start();
的样本中的行没有任何变化.
我正在尝试创建一个系统,我可以在其中验证字符串以检查它是否是 url。( https://www.google.com/ )
我找到了 flutter 包验证器,但这与 dart 2 不兼容,因此与我的代码不兼容。
同样命名,我也找到了验证器包,但我似乎无法让它与我的代码一起正常工作,因为它会引发以下错误;(希望你喜欢我的项目名称;)
Because every version of flutter_test from sdk depends on test 1.3.0
and every version of validators depends on test ^1.3.3, flutter_test from sdk is incompatible with validators.
So, because gucci depends on both validators ^1.0.0+1 and flutter_test any from sdk, version solving failed.
Unable to reload your application because "flutter packages get" failed to update package dependencies.
Exception: pub get failed (1)
Run Code Online (Sandbox Code Playgroud)
如果您可以找到一个修复程序,validators
以便它不会抛出此错误并因此与我的代码一起正常工作,或者建议另一种验证字符串是否符合 …
我想检查django是否存在URL,如果存在,我想在屏幕上显示某些内容,即:
if URL_THAT_POINTS_TO_SOME_PDF exists
SHOW_SOMETHING
Run Code Online (Sandbox Code Playgroud) 可能重复:
检查PHP中是否存在Url的最佳方法是什么?`
我正在寻找一个在php中返回TRUE或FALSE的函数,无论URL是否有效.
isValidURL($网址); 我认为这很简单...这将考虑所有类型的URL可能.
通过有效我希望它引用网络的现有页面或其他类型的文件.它应该存在
我一直试图弄清楚验证URL的最佳方法是什么(特别是在Python中),但实际上并没有找到答案.似乎没有一种已知的方法来验证URL,这取决于您认为可能需要验证的URL.同样,我发现很难找到易于阅读的URL结构标准.我确实找到了RFC 3986和3987,但它们包含的不仅仅是它的结构.
我错过了什么,或者没有一种标准方法来验证URL?
我正面临一个问题,我在我的代码中使用了UrlValidator.
UrlValidator urlValidator = UrlValidator.getInstance();
if(urlValidator.isValid(url)) {
throw new IllegalArgumentException( url + "not valid");
}
where url i'm passing is
[1]: http://localhost:8080/myapp/Education.html
Run Code Online (Sandbox Code Playgroud)
如果我正在传递url,我将收到IllegalArgumentException
[2]: https://www.google.co.in/
Run Code Online (Sandbox Code Playgroud)
它的工作正常.如何使此代码适用于localhost:8080
我URLValidator
在表单中以下列方式使用Django :
def clean_url(self):
validate = URLValidator(verify_exists=True)
url = self.cleaned_data.get('url')
try:
logger.info(url)
validate(url)
except ValidationError, e:
logger.info(e)
raise forms.ValidationError("That website does not exist. Please try again.")
return self.cleaned_data.get('url')
Run Code Online (Sandbox Code Playgroud)
它似乎适用于某些网址,但对于某些有效网址,它会失败.我能够通过http://www.amazon.com/检查它是否失败(这显然是不正确的).它通过http://www.cisco.com/.是否存在伪造错误的原因?
我试图通过url
url 避免XSS攻击:http://example.com/onlineArcNew/html/terms_conditions_1.php/%22ns=%22alert%280x0000DC%29
我试过了
var_dump(filter_var('http://10.0.4.2/onlineArcNew/html/terms_conditions_1.php/%22ns=%22alert%280x0000DC%29', FILTER_VALIDATE_URL));
Run Code Online (Sandbox Code Playgroud)
和其他url_validation使用正则表达式但根本没有工作.上面的链接显示所有信息,但我的CSS和一些Java脚本功能不起作用.请提出最佳解决方案......