小编Sun*_*Sun的帖子

Dropwizard - 组织你的项目,理解术语等

我正在学习使用Dropwizard.我能够遵循快速入门指南并运行基本的REST API.

在本文档中,有一个名为"组织项目"的部分.

它建议按以下部分组织项目:project-api,project-client,project-service.

这是我的问题/疑问:

  1. 一般来说,请解释'api','service'和'client'之间的区别.

  2. 是否有一个例子严格遵循上述惯例使用dropwizard?

  3. "...项目客户端应该使用这些类和HTTP客户端为您的服务实现一个成熟的客户端" - 因为"项目服务"将具有REST API,那么为什么我们需要使用HTTP客户端?

谢谢!

java rest http dropwizard

16
推荐指数
2
解决办法
9805
查看次数

使用凭据提供程序时,Apache HttpClient 不发送身份验证标头

编辑:我已经尝试过评论中提供的解决方案,但它们不起作用。添加原始标头是可行的,但我试图避免这样做。

我面临着一个奇怪的情况。我有一个受基本身份验证保护的资源,我可以通过浏览器、Postman 和curl 轻松查询该资源。但在 Java 中,我无法查询它并收到 403 禁止错误。我按照下面的例子:

CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("username", "password");
provider.setCredentials(AuthScope.ANY, credentials);
CloseableHttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();

HttpResponse response = client.execute(new HttpGet("https://hostname.com/api/detail?query=xx"));
int statusCode = response.getStatusLine().getStatusCode();
System.out.println(statusCode);     // prints 403 forbidden
Run Code Online (Sandbox Code Playgroud)

当我检查调试器中的对象时,我注意到 HttpGet 对象的标头为空。也就是说,它没有传递带有“Basic asdflkhjWskjhakljhasdfkasdflkjh=”值的“Authorization”标头。

因此,我手动添加了具有正确值的标头并且它起作用了(状态 200 OK)。

有人可以帮我弄清楚为什么会发生这种情况以及如何使用 HttpClient API 设置正确的标头而不是手动添加标头?

这是我的依赖:

<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
Run Code Online (Sandbox Code Playgroud)

java apache-httpclient-4.x

6
推荐指数
1
解决办法
5714
查看次数

为什么IE 8 navigator.userAgent会返回MSIE 7.0?

我正在尝试在我的网页上实现浏览器支持功能.对于Firefox 3.6,它工作正常,但由于某种原因IE 8的userAgent返回错误的值.

这是场景,当我在IE8上运行"本地"javascript代码时,navigator.userAgent返回正确的信息(MSIE 8.0).但是当我在服务器上运行此脚本时,它会在IE 8浏览器上返回MSIE 7.0.

有任何想法吗?

html javascript user-agent navigator internet-explorer-8

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

innerHtml不适用于嵌套的div标签

我无法将.innerHtml替换为嵌套在其他div标签中的div标签.我用firebug来确保getElementById()正常工作.

<div class="a">
<div class="b"><a href="myUrl"><div id="hello"></div></a></div>
</div>
Run Code Online (Sandbox Code Playgroud)

在我使用的javascript代码中:

document.getElementById("hello").innerHTML = "hello world";
Run Code Online (Sandbox Code Playgroud)

使用firebug,我已经验证了"hello"div被拾取(也就是说,它不是null).但字符串"你好世界"没有出现.请帮助.谢谢.

html javascript innerhtml getelementbyid

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