小编fga*_*lan的帖子

检查C++替代品中的空字符串

(至少:)有两种方法可以检查C++中的字符串是否为空,特别是:

if (s.length() == 0) {
  // string is empty
}
Run Code Online (Sandbox Code Playgroud)

if (s == "") {
  // string is empty
}
Run Code Online (Sandbox Code Playgroud)

从性能的角度来看哪一个最好?也许图书馆的实施足够聪明,所以它们之间没有任何不同(在这种情况下,其他标准应该决定,即可读性),但我倾向于认为第一种选择(使用length())更好.

对此有何反馈?(甚至比我提出的方法更好的第三种方法).

c++

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

使用 http-proxy-middleware 记录请求/响应主体

我正在使用http-proxy-middleware来实现透明代理。

我想做请求/响应检查。我的意思是,我想打印通过代理的文本文件请求/响应,而不对其进行任何修改。

到目前为止,我使用的是这样的(简化版):

app.use('/proxy/:service/', proxy({
        pathRewrite: function(path, req){
            ...
        },
        router: function(req) {
            ...
        },
        onProxyRes: function(proxyRes, req, res) {
            log("Req URL: " + req.originalUrl);
            log("Response status code: " + proxyRes.statusCode);
        }
}));
Run Code Online (Sandbox Code Playgroud)

log()是一个帮助函数,它使用字符串作为输入并打印它是我的日志文件)

因此,基本上我正在使用onProxyRes拦截响应并在那时进行日志记录。问题是我只能使它适用于 URL、状态代码、标题等,但我没有在req和/或resProxy对象中找到有效负载正文。

我已阅读有关如何在此处获取res尸体的信息。然而,这似乎是一个复杂的解决方案(需要设置一个data事件处理程序)。req据我所知,它没有覆盖身体。

任何提示/帮助/参考都非常感谢,请。不确定使用onProxyRes是否是实现这一点的最佳方式,也许库提供了一些功能来涵盖请求/响应情况。

node.js http-proxy-middleware

11
推荐指数
1
解决办法
3117
查看次数

在Java SDK Amazon S3中配置路径样式

我正在使用Amazon提供的AWS Java SDK与S3服务进行交互.

似乎默认情况下,SDK使用虚拟主机样式用于存储桶(即存储桶由存储桶名称 .s3.amazonaws.com提供.示例:

PUT / HTTP/1.1
Host: a-given-bucket.s3.amazonaws.com
Date: Tue, 26 Jun 2012 10:39:40 GMT
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)

但是,我需要在我的应用程序中使用path-style,如下所示:

PUT /a-given-bucket/ HTTP/1.1
Host: s3.amazonaws.com
Date: Thu, 21 Jun 2012 16:27:32 GMT
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)

是否可以在Java SDK中使用路径样式,好吗?在积极的情况下,我该怎么办?我看过ClientConfiguration和AmazonS3Client类,但我没有看到任何方法来做...

在重要的情况下,我的SDK版本是:2.0.0v201206151133.

谢谢!


费尔明

PD.为简单起见,样本中省略了一些标题.

编辑: 这样的功能(配置AmazonS3Client使用的URL路径样式)非常有用,以防你的桶中有一个点(".").与虚拟主机风格的HTTPS请求不工作,看到这个这个.

java amazon-s3 amazon-web-services

9
推荐指数
3
解决办法
5143
查看次数

在spagoBI中部署OLAP多维数据集时出错.消息:无法在服务器上部署文档:class it.eng.spagobi.sdk.exceptions.SDKException

在SpagoBI中部署OLAP多维数据集时出错.错误消息:无法在服务器上部署文档:class it.eng.spagobi.sdk.exceptions.SDKException

business-intelligence spagobi fiware-knowage

7
推荐指数
1
解决办法
1431
查看次数

Flask应用程序中的双IPv4和IPv6支持

是否可以运行Flask来侦听IPv4和IPv6(即双IP堆栈)?据我检查,可以使用以下方式在IPv4中运行:

app.run(host='0.0.0.0', port=port, debug=True)
Run Code Online (Sandbox Code Playgroud)

或使用IPv6

app.run(host='::', port=port, debug=True)
Run Code Online (Sandbox Code Playgroud)

但是我没有找到同时在两者中运行的方法(可以让我的Flask应用程序的实例监听IPv4而另一个实例监听IPv6,但两者都不能监听同一个端口).

谢谢!

更新(附加信息):

接着Sander Steffann的评论(谢谢!),我已经开始在IPv6中监听我的应用了:

* Running on http://[::]:1028/
* Restarting with reloader
Run Code Online (Sandbox Code Playgroud)

然后使用IPv6和IPv4 curls进行测试:

curl -g [::1]:1028/notify
curl 127.0.0.1:1028/notify
Run Code Online (Sandbox Code Playgroud)

分别获得:

::1 - - [10/Feb/2014 12:04:51] "GET /notify HTTP/1.1" 200 -
::ffff:127.0.0.1 - - [10/Feb/2014 12:05:03] "GET /notify HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)

我对第二行的解释是"某人"(操作系统?Flask所依赖的底层网络库?)正在将IPv4请求转换为IPv6请求.但是,据我所知,在经典的双栈设置中支持IPv4"本机"是不一样的,即我本来期望有什么能够解决这个问题(这是我运行应用程序时得到的Running on http://0.0.0.0:1028/)()

127.0.0.1 - - [10/Feb/2014 12:05:03] "GET /notify HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)

ipv6 flask

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

MongoDb:使用Groovy语言进行聚合

我在SpagoBI下使用groovy脚本.我想使用聚合.我想要例如执行以下聚合:

db.myCollection.aggregate(
   [
      {
        $group : {
           _id : { day: { $dayOfMonth: "$recvTime" } }

        }
      }
   ]
)
Run Code Online (Sandbox Code Playgroud)

我试过了:

DBObject projectFields = new BasicDBObject('$dayOfMonth',"recvTime");
DBObject project=new BasicDBObject('$project',projectFields)

DBObject groupFields = new BasicDBObject( "_id",project);

DBObject group = new BasicDBObject('$group', groupFields);

iterable = db.getCollection('myCollection').aggregate(group)  
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

An unexpected error occured while executing dataset: { "serverUsed" : "192.168.1.160:27017" , "errmsg" : "exception: invalid operator '$project'" , "code" : 15999 , "ok" : 0.0}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新:在Mongo shell中执行的查询

db['cygnus_/kurapath_enocean_power_enocean'].aggregate(
...    [
...       {
... …
Run Code Online (Sandbox Code Playgroud)

groovy mongodb aggregation-framework fiware fiware-knowage

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

如何在Birt报告中使用给定参数循环查询

我已经在birt做了一个报告.包含查询的报告的数据集,其中包含许多使用Startdate参数的条件.我做了两个参数StartdateEnddate.我想将参数从Startdate参数循环到Enddate参数.

我想用不同的参数eveytime运行一个查询,从Startdate开始直到enddate

birt spagobi fiware-knowage

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

在Orion Context Broker 0.23.0中按属性值过滤

在当前版本的Orion Context Broker,0.23.0中,新增功能之一是它支持根据属性值(NGSI v2)过滤实体.我正在执行GET操作,如http://telefonicaid.github.io/fiware-orion/api/v2/所示,我获得的是整套实体,没有过滤操作.有关如何使用新的REST API NGSI v2的明确示例,请您帮我解决这个问题吗?

非常感谢你提前

fiware-orion fiware

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

使用fstack-check时,意外的valgrind"无效写入"

我有以下非常简单的C程序(test.c):

int f(int i)
{
  return i;
}

int main(int argC, char* argV[])
{
  int x = f(12);
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

我已经用valgrind做了一些测试,-fstack-check在两个不同的系统中使用编译器标志.

Debian 8.6上用gcc 4.9.2和valgrind 3.10.0进行测试.

没有-fstack-check:

$ gcc test.c -o test
$ valgrind ./test
==103703== Memcheck, a memory error detector
==103703== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==103703== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==103703== Command: ./test
==103703== 
==103703== 
==103703== HEAP SUMMARY: …
Run Code Online (Sandbox Code Playgroud)

c gcc valgrind

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

从DB检索的文档的BSON对象大小

Mongo shell使用bsonsize()方法来获取从DB检索的给定文档的BSON大小.

有没有办法使用PyMongo驱动程序获得相同的?我在文档中找到了bson模块,但我不清楚如何使用它来获取从DB检索的文档的大小.

python mongodb bson pymongo

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