我从HttpClient获得了奇怪的行为,参数CoreConnectionPNames.CONNECTION_TIMEOUT设置为1.我希望HttpGet请求失败,抛出连接超时异常,但它们是成功的.这似乎是不合理的,因为它实际上意味着TCP握手在不到1毫秒内完成.
我正在使用的httpclient版本可以在这个pom.xml中看到
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0.1</version>
<type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这是代码:
import java.io.IOException;
import java.util.Random;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
public class TestNodeAliveness {
private static Logger log = Logger.getLogger(TestNodeAliveness.class);
public static boolean nodeBIT(String elasticIP) throws ClientProtocolException, IOException {
try {
HttpClient client = new DefaultHttpClient();
// The time it takes to open TCP connection.
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1);
// Timeout when server does not send data.
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000); …
Run Code Online (Sandbox Code Playgroud) 简单的情况 -
我试过gson,来自json.org的软件包,但似乎无法与之相提并论.
有人可以在Java中提供一个关于如何获取文件的清晰样本,阅读它,最后使用json objec我可以从中获取键/值对.
考虑一下:
private void runThroughJson(JsonObject jsonObject) {
for (final Entry<String, JsonElement> entry : jsonObject.entrySet()) {
final String key = entry.getKey();
final JsonElement value = entry.getValue();
System.out.println(key + " - " + value);
if (value.isJsonObject()) {
runThroughJson(value.getAsJsonObject());
} else {
int ix = value.getAsString().indexOf('[');
int ig = value.getAsString().lastIndexOf(']');
System.out.println(ix);
System.out.println(ig);
String a = value.getAsString().substring(ix, ig);
JsonElement jsonElement = parser.parse(a);
runThroughJson(jsonElement.getAsJsonObject());
}
}
}
Run Code Online (Sandbox Code Playgroud)
从逻辑上讲,它似乎没问题,但是,我得到一个例外:
Exception in thread "main" java.lang.IllegalStateException
at com.google.gson.JsonArray.getAsString(JsonArray.java:133)
at com.cme.esg.bk.TryGson.runThroughJson(TryGson.java:46)
at …
Run Code Online (Sandbox Code Playgroud) 我希望在启动System.Threading.Timer
时启动我的应用程序(可能部署是正确的单词).我已经看到你可以使用Application_Start()
但只有在第一个请求到达应用程序时才会触发.我需要在应用程序运行后立即启动计时器,以便即使用户没有与站点交互也可以检查要处理的工作.如何在应用程序启动并运行后让应用程序启动计时器?
我想有效地比较部分byte[]
- 所以我理解memcmp()
应该使用.
我知道我可以使用PInvoke来调用memcmp()
- 在.NET中比较两个字节数组
但是,我想只比较byte[]
使用偏移的部分,并且memcmp()
因为它使用指针而没有偏移.
int CompareBuffers(byte[] buffer1, int offset1, byte[] buffer2, int offset2, int count)
{
// Somehow call memcmp(&buffer1+offset1, &buffer2+offset2, count)
}
Run Code Online (Sandbox Code Playgroud)
我应该使用C++/CLI来做到这一点吗?
我应该在IntPtr中使用PInvoke吗?怎么样?
谢谢.
我们组织中的数据库开发标准声明varchar字段不应允许空值.它们的默认值应为空字符串("").我知道这使得查询和连接更容易,但今天,我的一位同事质疑我为什么该标准仅存在于varchar类型而不是其他数据类型(int,datetime等).我想知道其他人是否认为这是一个有效的,可辩护的标准,或者varchar是否应该被视为与其他数据类型的字段相同?
我相信这个标准是有效的,原因如下:
我认为空字符串和空值虽然技术上不同,但在概念上是相同的.空的零长度字符串是不存在的字符串.它没有任何价值.但是,数值0与NULL不同.
例如,如果名为OutstandingBalance的字段的值为0,则表示剩余的金额为0.00.但是,如果相同的字段为NULL,则表示该值未知.另一方面,名为CustomerName的值为""的字段与NULL值基本相同,因为两者都表示名称不存在.
我在某处读到空字符串与NULL的类比是空白CD与无CD的比较.不过,我相信这是一个错误的类比,因为一张空白CD仍然存在phyically,仍然有不具有写入任何有意义的数据物理数据空间.基本上,我相信一个空白的CD是空白(""),而不是一个空字符串的字符串的等价物.因此,笔者认为空格的字符串是从NULL单独的实际值,而是一个空字符串是有价值由于缺少概念上等同于NULL.
如果我对可变长度字符串的信念有效,请告诉我,如果不是,请告诉我.我已阅读关于这个问题的几个博客/参数,但仍然没有看到空值和空字符串之间的真正概念上的差异.
从RVM 1.8.7开始升级到Rails 3.OSX 10.5.8
Output:
josh-crewss-macbook:~ joshcrews$ gem install sqlite3-rubyBuilding native extensions. This could take a while...ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension.
/Users/joshcrews/.rvm/rubies/ruby-1.8.7-p174/bin/ruby extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... no
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile
make
gcc -I. -I. -I/Users/joshcrews/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/i686-darwin9.8.0 -I. -I/usr/local/include -I/opt/local/include -I/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -O2 -fno-common -pipe -fno-common -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn …
Run Code Online (Sandbox Code Playgroud) 我写的一些代码有点小问题
if(parameter == 1)
{
var linq = from a in db.table select a;
}
else
{
var linq = from a in db.table where a.id = 1 select a;
}
foreach(var b in linq)
{
...
}
Run Code Online (Sandbox Code Playgroud)
所以基本上发生的是变量"linq"根据"参数"的值而不同.当我尝试使用foreach循环遍历"linq"时,我得到一个关于当前上下文中linq不存在的错误.
解决此类问题的最佳方法是什么?
我正在尝试使用XML Spreadsheet在php的帮助下创建动态Excel工作表.但是当我尝试打开动态创建的Excel工作表时,我不断收到"无法加载工作表,工作表设置问题"的错误.当我尝试查看它创建的日志文件时,它会显示以下文本,
XML ERROR in Worksheet Setting
REASON: Bad Value
FILE: C:\Documents and Settings\UserName\Local Settings\Temporary Internet Files\Content.IE5\5XZ039FS\output[3].xls
GROUP: Worksheet
TAG: Table
ATTRIB: ExpandedRowCount
VALUE: 4
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉上述错误是什么意思,我该如何删除它?
我需要计算DOM对象的offsetRight。我已经有一些相当简单的代码来获取offsetLeft,但是没有javascript offsetRight属性。如果我添加offsetLeft和offsetWidth,那行得通吗?或者,还有更好的方法?
function getOffsetLeft(obj)
{
if(obj == null)
return 0;
var offsetLeft = 0;
var tmp = obj;
while(tmp != null)
{
offsetLeft += tmp.offsetLeft;
tmp = tmp.offsetParent;
}
return offsetLeft;
}
function getOffsetRight(obj)
{
if (obj == null)
return 0;
var offsetRight = 0;
var tmp = obj;
while (tmp != null)
{
offsetRight += tmp.offsetLeft + tmp.offsetWidth;
tmp = tmp.offsetParent;
}
return offsetRight;
}
Run Code Online (Sandbox Code Playgroud) c# ×3
java ×3
.net ×1
asp.net ×1
bdd ×1
c++-cli ×1
excel-2007 ×1
javascript ×1
json ×1
linq ×1
memcmp ×1
null ×1
nullable ×1
offset ×1
php ×1
pinvoke ×1
rvm ×1
scala ×1
sql-server ×1
sqldatatypes ×1
sqlite ×1
sqlite3-ruby ×1
types ×1