小编ksl*_*ksl的帖子

使用Curl和Postman构造HTTP POST请求

我一直在Chrome上使用curl&Postman将带有一个变量的http POST请求发送到我运行的简单HTTP服务器,我注意到他们构建请求的方式略有不同.如果我在构建问题时可能使用了任何不正确的术语,我会道歉 - 我还在学习这些东西.

使用Postman,通过放置'?'来构造请求 资源名称和变量之间.例如

http://192.168.0.2:9999/1/command?a=b
Run Code Online (Sandbox Code Playgroud)

但是,以下curl命令:

curl -X POST http://192.168.0.2:9999/1/command --data a=b 
Run Code Online (Sandbox Code Playgroud)

不放'?' 资源名称和变量之间.

结果是HTTP服务器以不同方式解释请求.

在第一种情况下,请求的主体是空的,而在第二种情况下,主体包含a = b.

哪个版本是正确的?

post curl http-post postman

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

使用PDFBox将unicode字符串写入PDF

我想使用Apache PDFBox 1.8.8创建一个包含unicode字符的PDF,但我对支持什么和不支持什么感到困惑.

这里发布的答案表明这是一个已修复在主干上的错误.

这里发布的另一个答案表明我必须自己做翻译.

此处发布的另一个(较旧的)答案涉及嵌入字体.

请有人澄清一下.此外,如果它是一个现在修复的错误,有人可以告诉我PDFBox的下一个版本可能是什么时候.

谢谢.

java pdf unicode pdfbox

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

'stol'使用Visual Studio但不是gcc抛出的异常

以下代码在Visual Studio 2013下运行但不是gcc 4.9.2时会引发异常.

报告的错误是:

'例外:stol争论超出范围'

stol返回一个long大小temp应该足够大以保存返回值.

谁能解释这种行为.这可能是编译器错误吗?

#include <iostream>
#include <exception>
#include <string>
#include <stdexcept>

int main()
{
    const std::string value = "4294967295";   // 0xffffffff

    try
    {
        int64_t temp = std::stol(value);
    }

    catch (std::invalid_argument& ex)
    {
        std::cout << "invalid_argument: " << ex.what() << "\n";
    }

    catch (std::exception& ex)
    {
        std::cout << "exception: " << ex.what() << "\n";
    }

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ exception c++11 visual-studio-2013 gcc4.9

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

可以在头文件中声明常量向量吗?

下面是头文件中的一些简化代码,其中声明了自由函数但未定义,并且声明并定义了向量。

cpp 文件包含自由函数的实现。

我想知道是否有办法在头文件中声明向量并将定义放在 cpp 文件中。

// my-file.h

namespace MyNamespace
{
    bool foo(const std::string& name, const std::string& value);
    void bar(const std::string& name, const std::string& value);

    const std::vector<std::function<void(const std::string&, const std::string&)>> m_myVector
    {
        foo,
        bar,
        [](const std::string& name, const std::string& value)
        {
            // do some stuff
        }
    };

} // MyNamespace
Run Code Online (Sandbox Code Playgroud)

c++ constants non-member-functions c++11

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

CMake - 用/ MT而不是/ MD编译

我是cmake的新手(2.8.12.1),我在Windows上使用它生成项目文件,使用Visual Studio 2012构建cpp-netlib.

默认情况下,它使用/ MDd编译器开关进行编译.我想改变它,以便它使用/ MTd.

我按照这里给出的建议/sf/answers/992101001/但它不适合我.

具体来说,我在if语句中添加了下面显示的第二行到CmakeLists.txt.

if (MSVC)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
endif()
Run Code Online (Sandbox Code Playgroud)

当我打开Visual Studio sln文件时,我可以看到仍然设置了/ MDd选项.此外,我在CMakeCache.txt中看到以下内容:

//Flags used by the compiler during debug builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=/D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
Run Code Online (Sandbox Code Playgroud)

我也尝试过像这样设置标志:

set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.

如果我通过命令行传递选项,如下所示:

-DCMAKE_CXX_FLAGS_DEBUG="/MTd"
Run Code Online (Sandbox Code Playgroud)

该选项已在Visual Studio项目中成功设置.

谁能告诉我我做错了什么?

如果有人可以告诉我缓存中的值来自于我未在命令行中指定或不在CmakeLists.txt中的位置,我也将不胜感激.

根据请求添加CMakeList.txt.如果我没有做到这一点,我从来没有发布过这样的道歉.

# Original from cpp-netlib.org with my edits

cmake_minimum_required(VERSION 2.8)
project(CPP-NETLIB)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTI_THREADED ON)
find_package( Boost 1.45.0 REQUIRED unit_test_framework system regex date_time thread filesystem program_options chrono )
find_package( OpenSSL )
find_package( Threads …
Run Code Online (Sandbox Code Playgroud)

cmake cpp-netlib visual-studio-2012

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

gcov 的排除标记

我正在使用 gcov 来测量我的 C++ 代码中的覆盖率。我希望能够标记某些源代码行,以便在使用 gcovr 时将它们排除在覆盖率报告之外。我知道它们存在,因为我曾经偶然发现过它们,但现在我找不到在哪里看到它们了。

我没有使用 lcov 来报告覆盖率,所以对这些标记的引用对我没有好处。

谁能指出我正确的地方?

c++ code-coverage gcov gcovr

3
推荐指数
1
解决办法
2348
查看次数

命名空间和自由函数

我有一个自由函数,foo在名称空间N中定义。的标头foo位于全局包含搜索路径中,因此任何人都可以通过包括来调用它foo.h

foo调用另一个本地自由函数foo1,该函数在中定义foo.cpp

// foo.h
namespace N
{
    void foo();
} 


// foo.cpp
#include "foo.h"

namespace
{
    // declare in the unnamed namespace?
    void foo1()
    {
        // do some stuff
    }
}

namespace N
{
    // declare in namespace N?
    void foo1()
    {
        // do some stuff
    }

    void foo()
    {
        foo1();
    }

} // N
Run Code Online (Sandbox Code Playgroud)

我应该放入foo1未命名的名称空间还是namespace N?还是没关系?

更新

我想将范围限制foo1foo.cpp

c++ namespaces global-namespace non-member-functions

3
推荐指数
1
解决办法
1523
查看次数

How to iterate over MultivaluedMap using forEach and a lambda expression

Java 8 allows iteration over a Map using forEach and a lambda expression as follows:

myMap.forEach((k, v)->{ System.out.println("Key: " + k + " Value: " + v); });
Run Code Online (Sandbox Code Playgroud)

Is it possible to iterate over a MultivaluedMap using forEach and a lambda expression?

UDPATE

How do I call foo with 2 String parameters for a MultivaluedMap<String, String>?

myMultiMap.forEach((k, v)->{ foo(k, v); });
Run Code Online (Sandbox Code Playgroud)

java foreach lambda java-8

3
推荐指数
1
解决办法
8801
查看次数

Jackson - 使用自定义 PrettyPrinter 和自定义 JsonSerializer

我正在使用 Jackson v2.8.2 将 JSON 序列化到文件中。

我创建了一个自定义序列化器并实现了serialize根据需要自定义 JSON 输出的方法。

我按如下方式调用序列化器:

// myClass is the object I want to serialize

SimpleModule module = new SimpleModule();
module.addSerializer(MyClass.class, new MySerializer());

ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
mapper.registerModule(module);

try 
{
    mapper.writeValue(new File("json.txt"), myClass);
}

catch (JsonProcessingException e) 
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

JSON 文件已创建,内容看起来不错。

该文件的格式根据DefaultPrettyPrinter但我想使用我自己的自定义PrettyPrinter,我已经实现了。

我怎么做?

我尝试过以下方法:

MyPrettyPrinter myPrettyPrinter = new MyPrettyPrinter();
mapper.writer(myPrettyPrinter);
mapper.writeValue(new File("json.txt"), myClass);
Run Code Online (Sandbox Code Playgroud)

但这并没有调用我的自定义打印机。

java json jackson jackson2

3
推荐指数
1
解决办法
3568
查看次数

使用shared_from_this时std :: bad_weak_ptr异常

以下代码std::bad_weak_ptr在ctor for MyCommand执行但函数未执行时导致异常MyCommand::execute

class Observer
{
public:
    Observer(){}
    virtual ~Observer(){}

    virtual void update(const std::string& msg) = 0;
};

class Command
{
public:
    Command(){}
    virtual ~Command(){}

    virtual void execute() = 0;
};

class MyCommand : public Command, public Observer, public std::enable_shared_from_this<MyCommand>
{
public:
    MyCommand()
    {
        // std::bad_weak_ptr exception
        std::shared_ptr<Observer> observer = shared_from_this();
    }

    virtual ~MyCommand(){}

private:
    virtual void execute()
    {
        // no exception
        std::shared_ptr<Observer> observer = shared_from_this();
    }
    virtual void update(const std::string& msg){}
};

int main(int …
Run Code Online (Sandbox Code Playgroud)

c++ constructor shared-ptr c++11

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