将FastRPC称为XMLHttpRequest,在C#中以base64编码

时间:2018-02-15 14:51:50

标签: c# xml http base64 rpc

我正在尝试使用C#从捷克服务(mapy.cz)提供的API获取高度。这是JSFiddle中的JS示例。

var coords = SMap.Coords.fromWGS84(15, 50);
coords.getAltitude().then(altitudeResponse);

请求的内容类型为: application / x-base64-frpc

所以我的解决方案是在C#中创建FastRPC调用,通过base64对其进行编码并将其发送到服务器。我搜索了如何创建这样的电话,但没有运气。

有没有人建议如何解决这个问题?

非常感谢,

修改 我试图比较两个请求的有效负载:

yhECAWgLZ2V0QWx0aXR1ZGVYAVgCGEC4AgplXC1AGM91aIktS0lAOAEQ
yhECAWgLZ2V0QWx0aXR1ZGVYAVgCGEC4Agrlci1AGAsmNM7mQElAOAEQ

差异应该是呼叫的参数。这意味着,另一种可能的解决方案是构建此请求:

yhECAWgLZ2V0QWx0aXR1ZGVYAVgCGEC4Ag + [参数] + lAOAEQ

EDIT2:

另一个提示可能是here

它生成FRPC调用并打印字节序列。

1 个答案:

答案 0 :(得分:0)

对此有效载荷进行编码/解码 https://github.com/seznam/JAK/blob/master/util/frpc.js

编码的数据可以在控制台调用中显示 console.log(JAK.FRPC.parse(JAK.Base64.atob("your-payload")));。将代码粘贴到任何example上时,可以轻松进行测试,因为可以直接在JSFiddle中对其进行调整。