小编Con*_*ang的帖子

如何判断 JSON 模式与 Java 中的另一个模式兼容?

例如,我有一个 JSON 架构,如下所示:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "billing_address": { "$ref": "#/definitions/address" },
    "shipping_address": { "$ref": "#/definitions/address" }
  }

  "definitions": {
    "address": {
      "type": "object",
      "properties": {
        "street_address": { "type": "string" },
        "city":           { "type": "string" },
        "state":          { "type": "string" }
      }, 
      "required": ["street_address", "city", "state"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

该模式表示一个具有两个可用的billing_addressshipping_address的对象,它们都是address类型,其中包含三个属性:street_addresscitystate

现在我得到了另一个“更大”的模式:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "billing_address": { "$ref": "#/definitions/address" },
    "shipping_address": { …
Run Code Online (Sandbox Code Playgroud)

java json jsonschema

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

如何使用 REST Assured 上传文件?

我编写了一个可以将文件上传到服务器的服务,现在我正在编写它与 REST Assured 的集成测试。功能代码如下:

    /* Upload a new document */
    @RequestMapping(method = RequestMethod.POST)
    public ResponseEntity uploadDocument(@RequestPart("file") final MultipartFile file, final HttpServletRequest request) throws IOException {
        final String id = documentService.saveDocument(file);
        final String url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/documents/" + id;
        return ControllerUtil.resourceCreatedMessage(id, url);
    }
Run Code Online (Sandbox Code Playgroud)

为了使用这个服务,我总是在 Postman 中上传一个文件,并且我没有在 Headers 中添加“Content-Type = multipart/form-data”,它完美地工作: 在此处输入图片说明

如果我添加标题信息“Content-Type = multipart/form-data”,我将收到“400 - 请求不是多部分请求,请参阅详细信息以获取更多信息”的消息。这部分也让我感到困惑,因为在上图中你可以看到我正在发送一个“表单数据”文件,它怎么可能不是一个多部分请求?

无论如何,我正在编写集成测试:

@Test
public void testDocuments() throws URISyntaxException {
    // Test post a document.
    given().multiPart("file", new File(LOCATE_TO_THE_TEST_HTML_FILE))
            .expect().statusCode(201).when() …
Run Code Online (Sandbox Code Playgroud)

java integration-testing rest-assured

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

如何获取程序执行的指令数?

我编写并交叉编译了一个小型的c ++程序,我可以在ARM或PC上运行它.由于ARM和PC具有不同的指令集架构,我想比较它们.我可以在这个c ++程序中为两个ISA获取执行指令的数量吗?

c++ x86 profiling arm instruction-set

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

如何在.cpp文件中使用NULL?

我现在正在研究唯一的实例(在c ++中),我在.cpp文件中尝试了以下代码.

#include "OnlyInstance.h"

OnlyInstance* OnlyInstance::instance = NULL;
..........
Run Code Online (Sandbox Code Playgroud)

但是编译器告诉我"错误C2065:'NULL':未声明的标识符".这意味着,我应该这样做

#include <stdio.h> 
Run Code Online (Sandbox Code Playgroud)

在它面前?但我还在主文件中包含了stdio.h.因此编译时会多次包含stdio.h,对吗?如何正确使用NULL?

另一个问题是,我知道我可以使用0而不是NULL,但在c ++中更推荐哪种方式?

c++ null-pointer

3
推荐指数
2
解决办法
533
查看次数

用c ++中的123.0初始化一个双指针

我试过c ++代码

double* p;
*p = 123.0;
Run Code Online (Sandbox Code Playgroud)

在vs 2010中,它因为指针尚未初始化而中断.但我记得我已经在博客中读过(忘了哪一个...),123.0是一个const值,所以p现在指向一个const值,你可以使用*p得到123.0但是你不能改变它的值.哪一个是真相?谢谢!

c++

-5
推荐指数
1
解决办法
112
查看次数