小编Pat*_*k M的帖子

Jersey客户端:如何将列表添加为查询参数

我正在为具有List作为查询参数的GET服务创建Jersey客户端.根据文档,可以将List作为查询参数(此信息也在@QueryParam javadoc中),检查出来:

通常,方法参数的Java类型可以:

  1. 是一种原始的类型;
  2. 有一个接受单个String参数的构造函数;
  3. 有一个名为valueOf或fromString的静态方法接受单个String参数(例如,参见Integer.valueOf(String)和java.util.UUID.fromString(String)); 要么
  4. Be List,Set或SortedSet,其中T满足上面的2或3.生成的集合是只读的.

有时参数可能包含同一名称的多个值.如果是这种情况,则可以使用4)中的类型来获得所有值.

但是,我无法弄清楚如何使用Jersey客户端添加List查询参数.

我理解替代解决方案是:

  1. 使用POST而不是GET;
  2. 将List转换为JSON字符串并将其传递给服务.

第一个不好,因为服务的正确HTTP动词是GET.这是一种数据检索操作.

如果你不能帮助我,第二个将是我的选择.:)

我也正在开发这项服务,所以我可以根据需要进行更改.

谢谢!

更新

客户端代码(使用json)

Client client = Client.create();

WebResource webResource = client.resource(uri.toString());

SearchWrapper sw = new SearchWrapper(termo, pagina, ordenacao, hits, SEARCH_VIEW, navegadores);

MultivaluedMap<String, String> params = new MultivaluedMapImpl();
params.add("user", user.toUpperCase()); 
params.add("searchWrapperAsJSON", (new Gson()).toJson(sw));

ClientResponse clientResponse = webResource .path("/listar")
                                            .queryParams(params)
                                            .header(HttpHeaders.AUTHORIZATION, AuthenticationHelper.getBasicAuthHeader())
                                            .get(ClientResponse.class);

SearchResultWrapper busca = clientResponse.getEntity(new GenericType<SearchResultWrapper>() {});
Run Code Online (Sandbox Code Playgroud)

java rest jersey

75
推荐指数
4
解决办法
21万
查看次数

你能为AssertJ断言添加自定义消息吗?

我们有一个测试套件,主要使用与Hamcrest匹配器的JUnit断言.我们的一个团队开始尝试使用AssertJ,并以其语法,灵活性和声明性来给人们留下深刻印象.JUnit提供了一个功能,我在AssertJ中找不到相应的功能:添加自定义断言失败消息.

我们经常比较那些不是为了人类可读性而且会有随机看似Ids或UUID的对象,并且不可能通过它们包含的数据来判断它们应该是什么.遗憾的是,对于我们的代码库来说,这是一个不可避免的情况,因为它实现的目的之一是在其他服务之间映射数据,而不必理解它是什么.

在JUnit中,该assertThat方法String reasonMatcher<T>param 之前提供带参数的版本.这样就可以添加一个简短的调试字符串来解决这个问题,就像比较对人类意味着什么一样.

另一方面,AssertJ提供了许多不同的泛化static assertThat方法,这些方法返回某种形式的接口Assert或其中许多实现类之一.此接口不提供设置要包含在故障中的自定义消息的标准方法.

有没有办法从AssertJ API或其扩展之一获得此功能,而无需为我们要添加消息的每个断言类型创建自定义断言类

java junit unit-testing assertj

67
推荐指数
4
解决办法
2万
查看次数

如何解析会导致非法C#标识符的JSON字符串?

我一直在使用NewtonSoft JSON Convert库来解析JSON字符串并将其转换为C#对象.但是现在我遇到了一个非常笨拙的JSON字符串,我无法将其转换为C#对象,因为我无法从这个JSON字符串中创建一个C#类.

这是JSON字符串

{
"1": {
    "fajr": "04:15",
    "sunrise": "05:42",
    "zuhr": "12:30",
    "asr": "15:53",
    "maghrib": "19:18",
    "isha": "20:40"
},
"2": {
    "fajr": "04:15",
    "sunrise": "05:42",
    "zuhr": "12:30",
    "asr": "15:53",
    "maghrib": "19:18",
    "isha": "20:41"
 } 
}
Run Code Online (Sandbox Code Playgroud)

解析此JSON字符串所需的C#类应如下所示:

public class 1 {

    public string fajr { get; set; }
    public string sunrise { get; set; }
    public string zuhr { get; set; }
    public string asr { get; set; }
    public string maghrib { get; set; }
    public string …
Run Code Online (Sandbox Code Playgroud)

c# json json.net

40
推荐指数
2
解决办法
4701
查看次数

如何在NetBeans 8.0中更改默认编码

我想知道我是否可以在NetBeans 8.0中更改默认编码...我搜索了很多但我没有找到如何更改此版本NetBeans中的编码的方法.

我的html文档中有这个标记: <meta charset="utf-8">

但!正如您在附加图像上看到的那样,NetBeans通知警告我编码问题.

内部编码声明

内部编码声明"utf-8"不同意文档的实际编码("windows-1250").

我在NetBeans中通过"新文件"功能创建了index.html.项目属性中有UTF-8编码,所以我认为它应该是UTF-8.我真的不知道'windows-1250'来自哪里!

在哪里可以找到一些选项来更改NetBeans 8.0中的默认编码甚至当前文件编码?

先感谢您...

encoding netbeans

38
推荐指数
2
解决办法
7万
查看次数

Spring Data MongoDB之间的日期

我使用spring数据mongodb.

我想要两个日期之间的记录.以下MongoDB查询有效:

db.posts.find({startDate: {$gte: start, $lt: end}});
Run Code Online (Sandbox Code Playgroud)

我尝试过的Spring数据查询对象代码转换不起作用:

Query query = new Query();
query.addCriteria(Criteria.where("startDate").gte(startDate)
                            .and("startDate").lt(endDate));
Run Code Online (Sandbox Code Playgroud)

构建我需要的Mongo查询的方法调用的正确顺序是什么?

java spring mongodb-java spring-data

32
推荐指数
6
解决办法
4万
查看次数

硬件令牌设备如何工作?

最近,我的银行发给我这个小设备,它生成一个必须在执行在线交易时使用的唯一代码,当我按下一个特定的白色按钮时,所有设备都会生成这个唯一的代码,它看起来不像是连接到一个远程服务器或其他任何东西.

我做了一些研究,最后在密码学中使用了一种称为Hash函数的东西,但我仍然没有得到它.

我的问题

  • 我银行的服务器如何知道该设备生成的代码是否正确?
  • 由于它每30秒只生成五个随机数字,为什么服务器不会验证我还决定使用的随机数?

hash cryptography hmac one-time-password two-factor-authentication

30
推荐指数
1
解决办法
4万
查看次数

为什么这不是POD?

这是关于std::is_pod,它检测模板是否是普通旧数据类型.

请参阅以下代码:

struct A {
public:
    int m1;
    int m2;
};

struct B {
public:
    int m1;
private:
    int m2;
};

struct C {
private:
    int m1;
    int m2;
};

int main()
{
    std::cout << std::boolalpha;
    std::cout << std::is_pod<A>::value << '\n'; // true
    std::cout << std::is_pod<B>::value << '\n'; // false
    std::cout << std::is_pod<C>::value << '\n'; // true
}
Run Code Online (Sandbox Code Playgroud)

这3个结构对我来说都像POD.但显然struct B不是.我不明白为什么.对我来说,他们都有一个简单的构造函数,移动和复制操作符.析构函数当然也是微不足道的.

我责备它使用2访问说明符,但我找不到有关此信息.

c++ data-structures

26
推荐指数
1
解决办法
821
查看次数

防止机器人表单提交

我正试图找出一种防止机器人提交表单的好方法,同时保持流程简单.我已经阅读了几个很棒的想法,但我想在提交表单时添加一个确认选项.用户单击"提交"并弹出一个需要用户交互的Javascript确认提示.

这会阻止机器人或者机器人能够解决这个问题吗?下面是代码和JSFIddle来演示我的想法:

的jsfiddle

$('button').click(function () {
  if(Confirm()) {
    alert('Form submitted');
    /* perform a $.post() to php */
  }
  else {
    alert('Form not submitted');
  }
});

function Confirm() {
  var _question = confirm('Are you sure about this?');
  var _response = (_question) ? true : false;
  return _response;
}
Run Code Online (Sandbox Code Playgroud)

javascript forms security jquery spam

25
推荐指数
2
解决办法
4万
查看次数

是否有任何Java标准类在没有实现Collection的情况下实现Iterable?

我有一个难题,这让我思考是否有任何标准的java类在Iterable<T>没有实现的情况下实现Collection<T>.我正在实现一个接口,它要求我定义一个接受一个的方法Iterable<T>,但我用来支持这个方法的对象需要一个Collection<T>.

这让我做了一些真正的kludgy感觉代码,在编译时会给出一些未经检查的警告.

public ImmutableMap<Integer, Optional<Site>> loadAll(
        Iterable<? extends Integer> keys
) throws Exception {
    Collection<Integer> _keys;
    if (keys instanceof Collection) {
        _keys = (Collection<Integer>) keys;
    } else {
        _keys = Lists.newArrayList(keys);
    }

    final List<Site> sitesById = siteDBDao.getSitesById(_keys);
    // snip: convert the list to a map
Run Code Online (Sandbox Code Playgroud)

更改生成的集合以使用更通用的Collection<? extends Integer>类型不会消除该行的未经检查的警告.此外,我无法更改方法签名以接受Collection而不是Iterable因为它然后它不再覆盖超级方法,并且在需要时不会被调用.

目前似乎没有被周围的方式该铸造或拷贝的问题:其他问题都得到了一个在别处问这里,似乎深深扎根于Java的泛型和类型擦除系统.但我要问的是,是否有任何可以实现的类Iterable<T>还没有实现Collection<T>?我已经浏览了IterableJavaDoc,当然我希望传递给我的界面的所有内容实际上都是一个集合.我想使用一个在野外预编写的类,因为它似乎更有可能实际作为参数传递,并使单元测试更有价值.

由于我正在写的一些单元测试,我确定我编写的演员或复制位与我在项目中使用它的类型一起工作.但我想编写一个单元测试的一些输入端,一个可迭代但不是一个集合,到目前为止,所有我已经能够拿出正在实施一个虚拟的测试类实现自己.


好奇的是,我正在实现的方法是Guava CacheLoader<K, V>.loadAll(Iterable<? …

java generics collections iterable

21
推荐指数
5
解决办法
1742
查看次数

mysql计数唯一的行值

TABLE quotation

id  clientid
1   25
2   25
3   25
4   25
5   26
Run Code Online (Sandbox Code Playgroud)

如何查询存在多少个不同的客户端TABLE quotation?我不希望重复的条目被多次计算.

我需要的答案是2,在一行中,因为唯一的非重复条目是(25,26).

mysql count distinct

15
推荐指数
1
解决办法
2万
查看次数