小编til*_*mik的帖子

Node.js HTTP GET请求内容类型

我正在尝试从node.js发出GET请求。该请求是针对将访问Hbase并返回数据的REST服务器。GET请求中包含所有必需的Hbase信息(表,键,列族等)。以下是代码。

var http = require('http');
var url = {
  host: '127.0.0.1',
  port: 8000,
  path: '/table-name/key/column-family',
  headers: {
    'Content-Type': 'application/octet-stream'
  },
};
http.get(url, function(resp){
  console.log("Status: " + resp.statusCode);
  console.log("Header: " + JSON.stringify(resp.headers));
  resp.setEncoding('utf8');
  var completeResponse = '';
  resp.on('data', function (chunk) {
    completeResponse += chunk;
  });
  resp.on('end', function(chunk) {
    console.log(completeResponse);
  });
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,我得到的响应并不总是要求的八位字节流。大多数时候,数据是带有以下标题的有效格式。

{"content-length":"454","x-timestamp":"1395469504346","content-type":"application/octet-stream"}
Run Code Online (Sandbox Code Playgroud)

但是,说出十分之一的响应是带有标题的XML字符串,如下所示。

{"content-type":"text/xml","content-length":"793"}
Run Code Online (Sandbox Code Playgroud)

在两种情况下,状态码都是200,我一直在请求一个现有的密钥。此行为看似随机,并非由任何特定键引起。

如何确保响应始终是八位字节流,而不是XML / JSON?

rest get http node.js

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

如何释放Java端本机方法分配的内存?

我试图将一个字节数组(随机数据)从本机传递到Java,我不确定这是否会导致任何内存泄漏.这是C++代码.

JNIEXPORT jbyteArray JNICALL Java_com_sample_test_jni_TestJNI_return_1byte_1array
(JNIEnv *env, jobject obj) {
  unsigned char *byteArray = new unsigned char[LENGTH];
  srand(12345);
  for(int i = 0;i < LENGTH;i++) {
    byteArray[i] = rand() % 64;
  }
  jbyteArray data = (env)->NewByteArray(LENGTH);
  env->SetByteArrayRegion(data, 0, LENGTH, (jbyte*)byteArray);
  delete(byteArray);
  return data;
}
Run Code Online (Sandbox Code Playgroud)

这是Java代码.

class TestJNI {
  static {
    System.loadLibrary("foobar");
  }
  public native byte[] return_byte_array();
  public static void main(String[] args) {
    byte[] data = new TestJNI().return_byte_array();
    System.out.println("Data length " + data.length);
  }
}
Run Code Online (Sandbox Code Playgroud)

我怀疑的是,本机代码中分配的jbytearray是否会被Java垃圾收集.我无法在原生方面释放它.

另外,有没有很好的文档用例子描述JNI内存管理?

c++ java java-native-interface memory-leaks native

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

标签 统计

c++ ×1

get ×1

http ×1

java ×1

java-native-interface ×1

memory-leaks ×1

native ×1

node.js ×1

rest ×1