相关疑难解决方法(0)

application/x-www-form-urlencoded或multipart/form-data?

在HTTP中有两种POST数据的方式:application/x-www-form-urlencodedmultipart/form-data.据我所知,大多数浏览器只能在使用时上传文件multipart/form-data.在API上下文中使用其中一种编码类型时是否有任何其他指导(不涉及浏览器)?这可能基于:

  • 数据大小
  • 存在非ASCII字符
  • 存在于(未编码的)二进制数据上
  • 需要传输额外的数据(如文件名)

到目前为止,我基本上没有在网上找到有关使用不同内容类型的正式指导.

post http http-headers

1268
推荐指数
4
解决办法
116万
查看次数

Gzip的JavaScript实现

我正在编写一个Web应用程序,需要通过AJAX将JSON数据存储在一个小的,固定大小的服务器端缓存中(想想:Opensocial配额).我无法控制服务器.

我需要减少存储数据的大小以保持服务器端配额,并且希望能够在将其发送到服务器之前在浏览器中对字符串化JSON进行gzip.

但是,我找不到Gzip的JavaScript实现方式.有关如何在发送之前压缩客户端数据的任何建议吗?

javascript compression ajax gzip

204
推荐指数
7
解决办法
15万
查看次数

如何将图像文件添加到json对象中?

我想将图像文件添加到json对象中.是否可以将图像文件添加到json对象中?

我尝试下面的代码,但它无法正常工作?因为我想将该json对象发送到服务器,所以服务器将读取我的图像文件并存储到该数据库中.

JSONObject test = new JSONObject();
test.put("photo",new File(// Here i set image uri));
Run Code Online (Sandbox Code Playgroud)

因此,当我打印这个json对象时,它只显示图像存储的图像路径.我想要文件发送到服务器.

android json

43
推荐指数
2
解决办法
13万
查看次数

JSON - 有没有XML CDATA等价物?

我正在寻找一种方式,json解析将按原样获取信息(就好像它是CDATA) - 而不是尝试序列化它.我们使用.net和java(客户端和服务器) - 所以答案应该是关于JSON结构有没有办法实现这个结构?

谢谢.

java json .net-4.0 cdata

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

以UTF-8字符串存储二进制数据

我想使用WebSocket传输二进制数据,但您只能使用WebSockets传输UTF-8字符串.

使用base64对其进行编码是一种选择,但我的理解是,当您的文本可能从一种格式转换为另一种格式时,最理想的是base64.在这种情况下,我知道数据将始终是UTF-8,那么有没有更好的方法来编码UTF-8字符串中的二进制数据而不支付base64的33%大小溢价?

这个问题主要是学术,为二进制的支持可能会被添加到最终的WebSocket和Base64是在此期间完全cromulent替代.

javascript unicode utf-8 websocket

21
推荐指数
1
解决办法
4533
查看次数

如何使用PHP安全地将JSON数据写入文件

我有用于编辑图像的HTML表单.所有数据都存储在JSON中.当我更改当前图像时,我想通过PHP脚本将更改保存到文本文件中.如果我返回上一张图像,此配置将再次从此文件发送到表单.

我的问题是:

如何安全地写/读这种数据.在何处以及如何有效地检查数据以防止某些JS/PHP代码注入?

我在下面附上了一些概念代码:

JavaScript(使用jQuery):

// Writing
$.ajax({
    global: false,
    type: "POST",
    cache: false,
    dataType: "json",
    data: ({
        action: 'write',
        config: JavaScriptJSON_Obj
    }),
    url: 'read-write.php'
});

// Reading
$.ajax({
    global: false,
    type: "POST",
    cache: false,
    dataType: "json",
    data: ({
        action: 'read'
    }),
    url: 'read-write.php',
    success: function(data){
        JavaScriptJSON_Obj = data;
    }
});
Run Code Online (Sandbox Code Playgroud)

PHP示例(read-write.php):

switch ($_REQUEST['action']) {
    case 'write':
        file_put_contents('config.txt', $_REQUEST['config']);
        break;
    case 'read':
        $s = file_get_contents('config.txt');
        echo json_encode($s);
        break;
}
Run Code Online (Sandbox Code Playgroud)

php security json file code-injection

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

通过RabbitMQ发送二进制文件

我现在正在设计一个使用RabbitMQ作为消息队列的设计.消息将具有JSON主体,特别是对于一条消息,我想添加一个小的二进制文件.

我想知道的是,二进制文件的数据是否应该是JSON消息的一部分,还是可以单独附加到消息中?

rabbitmq

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

multipart/form-data和FormType验证

我正在使用FOSRestBundle构建API,并且我正处于需要实现创建包含二进制数据的新实体的处理阶段.

按照发送二进制数据和REST API请求 概述的方法,multipart/form-data由于Base64需要增加约33%的带宽,因此发送数据对于我们的实现感觉最实用.

如何配置REST端点以处理请求中的文件,并在发送数据时对JSON编码实体执行验证multipart/form-data

当刚刚发送原始JSON时,我一直在使用Symfony的表单handleRequest方法来执行针对自定义的验证FormType.例如:

$form = $this->createForm(new CommentType(), $comment, ['method' => 'POST']);
$form->handleRequest($request);

if ($form->isValid()) {

  // Is valid

}
Run Code Online (Sandbox Code Playgroud)

我喜欢这种方法的原因是,我可以根据操作是更新(PUT)还是新操作(POST)来更多地控制实体的数量.

我知道Symfony的Request对象处理请求,以前JSON数据将是content变量,但现在键入request->parameters->[form key]文件bag(request->files)中的文件.

rest symfony fosrestbundle

9
推荐指数
2
解决办法
7086
查看次数

将NSData字节数组转换为字符串?

我有一个NSData对象.我需要将其字节转换为字符串并作为JSON发送.description返回十六进制并且不可靠(根据各种SO海报).所以我正在看这样的代码:

NSUInteger len = [imageData length];
Byte *byteData = (Byte*)malloc(len);
[imageData getBytes:&byteData length:len];
Run Code Online (Sandbox Code Playgroud)

然后我如何将byteData作为JSON发送?我想发送原始字节.

码:

NSString *jsonBase64 = [imageData base64EncodedString];
NSLog(@"BASE 64 FINGERPRINT: %@", jsonBase64);
NSData *b64 = [NSData dataFromBase64String:jsonBase64];
NSLog(@"Equal: %d", [imageData isEqualToData:b64]);
NSLog(@"b64: %@", b64);
NSLog(@"original: %@", imageData);
NSString *decoded = [[NSString alloc] initWithData:b64 encoding:NSUTF8StringEncoding];
NSLog(@"decoded: %@", decoded);
Run Code Online (Sandbox Code Playgroud)

除了最后一行之外,我得到了一切的价值 - decoded.哪会告诉我原始字节没有格式化为NSUTF8encoding?

cocoa json objective-c nsdata

9
推荐指数
2
解决办法
3920
查看次数

413 负载太大,对于在 Express 中调整大小后的 Base64 字符串

我尝试使用 Base64 编码文件向我的节点服务器发出发布请求。

我收到 PayloadTooLargeError: requestEntity Too Large 异常,所以我按照 Express 4 约定扩展了有效负载限制

app.use(bodyParser.json({limit: '100mb'}));
app.use(bodyParser.urlencoded({limit: '100mb', extended: true}));
Run Code Online (Sandbox Code Playgroud)

这是一张console.log的图片

但是问题仍然出现,有人可以帮我解决为什么吗?

这是我的全局变量

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false}))
app.use(bodyParser.json({limit: '100mb'}));
app.use(bodyParser.urlencoded({limit: '100mb', extended: true}));
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

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