小编Cor*_*rey的帖子

从HTTPClient响应中解压缩GZip流

我正在尝试连接到一个api,它从WCF服务(WCF服务到WCF服务)返回GZip编码的JSON.我正在使用HTTPClient连接到API,并且能够将JSON对象作为字符串返回.但是我需要能够将这些返回的数据存储在数据库中,因此我认为最好的方法是将JSON对象返回并存储在数组或字节中或沿着这些行存储.

我特别遇到的问题是GZip编码的解压缩,并且尝试了很多不同的例子,但仍然无法得到它.

下面的代码是我建立连接和获得响应的方式,这是从API返回字符串的代码.

public string getData(string foo)
{
    string url = "";
    HttpClient client = new HttpClient();
    HttpResponseMessage response;
    string responseJsonContent;
    try
    {
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        response = client.GetAsync(url + foo).Result;
        responseJsonContent = response.Content.ReadAsStringAsync().Result;
        return responseJsonContent;
    }
    catch (Exception ex)
    {
        System.Windows.Forms.MessageBox.Show(ex.Message);
        return "";
    }
}
Run Code Online (Sandbox Code Playgroud)

我一直在关注一些不同的例子,比如这些StackExchange API,MSDN和一些关于stackoverflow,但我无法让任何这些对我有用.

实现这一目标的最佳方法是什么,我是否在正确的轨道上?

多谢你们.

c# wcf json gzip

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

JSONP交叉原始错误'No Access-Control-Allow-Origin标头存在'

我正在使用Ajax使用他们的API从twitter获取数据.我正在尝试使用jsonp,从我能看到和理解的东西,我认为我做的一切都是正确的(显然不是).

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">  </script>
<script>
    $(document).ready(function () {
        $.ajax( {
            type: 'GET',
            datatype: 'jsonp',
            data: {},
            crossDomain: 'true',
            url: "http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?",
            error: function(textStatus, errorThrown) {
                alert("error");
            },
            success: function(msg) {
                console.log(msg);
            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

以上代码在Chrome和Firefox中都会生成错误XMLHttpRequest无法加载http://twitter.com/status/user_timeline/padraicb.json?count=10&callback= ?.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.

从我的理解,我认为拥有&callback=?和设置类型jsonp将允许这成功.更重要的是,我可以看到在fiddler中返回的JSON对象,它只是没有被脚本处理.我尝试了多个API,同时出现同样的问题.

当输入地址栏时,一个这样的API也可以工作.

所以我经过广泛的搜索和寻找后,我需要一些如何设置原点*?我认为这更像服务器端问题?

我也试过?callback?但无济于事.

任何想法都会很棒,谢谢.

javascript ajax jquery json

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

使用Linq确定列表中是否存在记录但是表中是否存在记录

我无法确定数据库表中是否存在记录,但列表中包含的更新记录中是否存在记录.如果记录在更新列表中不存在但在数据库表中存在,那么该记录需要删除.

我可以查询表以确定它是否已被修改,如果数据库表中不存在该记录然后更新它,但确定相反的情况证明有点棘手.另一个限制是我需要结果是一个bool值为exists = true而不是exists = false,这样我就可以适当地处理删除记录了.

我这样做是为了确定数据库表中是否存在记录:

bool exists = db.table.Any(t => t.EntityID != list.EntityID)
Run Code Online (Sandbox Code Playgroud)

但似乎无法反过来管理.

列表和数据库表使用Entity Framework进行1对1映射.

如果记录存在于数据库中但不在列表中,则删除.

c# linq entity-framework

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

反序列化mimekit.MimeMessage对象

我有一些问题反序列化mimeKit.mimeMessage,我将其序列化为JSON字符串并存储在redis键值缓存中.

我能够使用json.NET或Jil成功地序列化和存储mimeMessage,但是当我去反序列化时,会抛出以下错误.

由json.NET抛出

无法找到用于MimeKit.Header类型的构造函数.一个类应该有一个默认的构造函数,一个带参数的构造函数或一个用JsonConstructor属性标记的构造函数.路径'标题[0].偏移',第1行,第22位.

我使用StackExchange.Redis方法stringGet获取序列化对象,然后将RedisValue传递给Json.Net; 下面的代码片段:

RedisValue result = db.StringGet(key);

MimeMessage message = new MimeMessage();

message = JsonConvert.DeserializeObject<MimeMessage>(result);
Run Code Online (Sandbox Code Playgroud)

我的理解是总是创建一个默认构造函数,这使得我很难理解,默认构造函数是否已被指定为私有,如果是这样,为什么?

我还检查了返回的JSON字符串的格式,它是正确的.

谢谢你的帮助.

c# json json.net mimekit

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

将字符串列表连接成单个字符串

我试图将一个字符串列表连接成一个用逗号分隔的单个字符串.非常简单的使用 string.Join,我面临的问题是如何使用属性这样做?

public class JsonObject
{
    public string EntityID { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string Address3 { get; set; }
    public string Address3 { get; set; }

    public List<string> Category = ??
}
Run Code Online (Sandbox Code Playgroud)

我想获取一个json对象并将其插入到数据库中.类别是我可以处理的数组List<string>.如何将此字符串列表连接成一个字符串,然后将其返回到字符串类别?我假设你必须使用一个单独的类来处理它,但除此之外我不知道怎么回事.

Json对象看起来像这样:

"EntityID":"foo",
"Categories": [ "Category1", "Category2", "Category3"] 
Run Code Online (Sandbox Code Playgroud)

我希望将这些类别(1,2,3)连接成单个字符串即

public string Category;
Run Code Online (Sandbox Code Playgroud)

c# string json concatenation

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

标签 统计

c# ×4

json ×4

ajax ×1

concatenation ×1

entity-framework ×1

gzip ×1

javascript ×1

jquery ×1

json.net ×1

linq ×1

mimekit ×1

string ×1

wcf ×1