相关疑难解决方法(0)

什么是正确的JSON内容类型?

我一直在忙着JSON一段时间,只是把它作为文本推出它并没有伤害任何人(我知道),但我想开始正确地做事.

我见过这样的JSON内容类型很多所谓的"标准":

application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
Run Code Online (Sandbox Code Playgroud)

但哪个是正确的,还是最好的?我认为它们之间存在安全性和浏览器支持问题.

我知道有一个类似的问题,如果REST API返回JSON,那么MIME类型是什么?,但我想要一个稍微有针对性的答案.

json content-type http-headers

9962
推荐指数
38
解决办法
265万
查看次数

是否必须处理HttpClient和HttpClientHandler?

.NET Framework 4.5中的System.Net.Http.HttpClientSystem.Net.Http.HttpClientHandler实现了IDisposable(通过System.Net.Http.HttpMessageInvoker).

using声明文件说:

通常,当您使用IDisposable对象时,您应该在using语句中声明并实例化它.

这个答案使用了这种模式:

var baseAddress = new Uri("http://example.com");
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
    var content = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string>("foo", "bar"),
        new KeyValuePair<string, string>("baz", "bazinga"),
    });
    cookieContainer.Add(baseAddress, new Cookie("CookieName", "cookie_value"));
    var result = client.PostAsync("/test", content).Result;
    result.EnsureSuccessStatusCode();
}
Run Code Online (Sandbox Code Playgroud)

但是微软最明显的例子并没有Dispose()明确地或隐含地调用.例如:

c# idisposable using .net-4.5 dotnet-httpclient

315
推荐指数
7
解决办法
12万
查看次数

HttpClient不支持PostAsJsonAsync方法C#

我试图从我的web应用程序调用web api.使用.net 4.5并在编写代码时我收到错误HttpClient不包含定义PostAsJsonAsync方法

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:51093/");
client.DefaultRequestHeaders.Accept.Add(
   new MediaTypeWithQualityHeaderValue("application/json"));
var user = new Users();
user.AgentCode = 100;
user.Remarks = "Test";
user.CollectionDate = System.DateTime.Today;
user.RemittanceDate = System.DateTime.Today;
user.TotalAmount = 1000;
user.OrgBranchID = 101;

var response = client.PostAsJsonAsync("api/AgentCollection", user).Result;
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:51093/");
client.DefaultRequestHeaders.Accept.Add(
   new MediaTypeWithQualityHeaderValue("application/json"));
var user = new Users();
user.AgentCode = 100;
user.Remarks = "Test";
user.CollectionDate = System.DateTime.Today;
user.RemittanceDate = System.DateTime.Today;
user.TotalAmount = 1000;
user.OrgBranchID = 101;

var …
Run Code Online (Sandbox Code Playgroud)

c# json asp.net-web-api dotnet-httpclient

223
推荐指数
9
解决办法
21万
查看次数

用C#调用json

我正在尝试使用C#进行json调用.我开始创建一个电话,但它不起作用:

public bool SendAnSMSMessage(string message)
{
    HttpWebRequest request = (HttpWebRequest)
                             WebRequest.Create("http://api.pennysms.com/jsonrpc");
    request.Method = "POST";
    request.ContentType = "application/json";

    string json = "{ \"method\": \"send\", "+
                  "  \"params\": [ "+
                  "             \"IPutAGuidHere\", "+
                  "             \"msg@MyCompany.com\", "+
                  "             \"MyTenDigitNumberWasHere\", "+
                  "             \""+message+"\" " +
                  "             ] "+
                  "}";

    StreamWriter writer = new StreamWriter(request.GetRequestStream());
    writer.Write(json);
    writer.Close();

    return true;
}
Run Code Online (Sandbox Code Playgroud)

任何关于如何使这项工作的建议将不胜感激.

c# json httpwebrequest

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

如何使用C#在POST请求中发送json数据

我想使用C#在POST请求中发送json数据.

我尝试了很多方法,但面临很多问题.我需要请求使用请求体作为来自字符串的原始json和来自json文件的json数据.

如何使用这两种数据表单发送请求.

例如:对于json中的身份验证请求体 - > {"Username":"myusername","Password":"pass"}

对于其他API请求体应从外部json文件中检索.

c# rest asp.net-mvc json web-services

17
推荐指数
4
解决办法
13万
查看次数

使用HTTPS和httpWebRequest

我发送httpwebrequests到paypal api服务器,这使用https.我做了你通常用http请求做的正常事情,并且它有效.我是否需要做一些特别的事情才能正确使用https,或者在请求URL中指定https以使其正常工作?

谢谢!

顺便说一句,我的请求是从我的服务器发送的,因此加密它们并不像从客户端计算机发送它们那么重要,但我仍然想做正确的事.

c# asp.net ssl https

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

如何使用C#发布带有HttpClient的JSON?

我不知道如何使用HttpClient POST JSON.我找到了一些解决方案,像这样,但我必须使用HttpClient,导致异步并且必须添加标头.

这是我的代码.知道怎么解决吗?

List<Order> list = new List<Order> { new Order() { Name = "CreatedTime", OrderBy = 1 } };

Queues items = new Queues { Orders = list };

var values = new Dictionary<string, string> { { "Orders", JsonConvert.SerializeObject(list) } };

var content = new FormUrlEncodedContent(values);

//HttpContent cc = new StringContent(JsonConvert.SerializeObject(items));

_msg = await _client.PostAsync(input, content);

//_msg = await _client.PostAsync(input, cc);

var response = await _msg.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)

c# json asynchttpclient

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

从HttpWebResponse反序列化JSON的方法

我试图找出解析.NET 3.5中传入的JSON服务器端的最佳方法.我从JSON Formate的HttpWebResponse收到"title".所以我必须检索每个标题并存储在数据库中.所以请提供检索每个标题的代码.

public class MyObject
{
    public ArrayList list { get; set; }
}

    var request = WebRequest.Create("https://api.dailymotion.com/videos?fields=description,thumbnail_medium_url%2Ctitle&search=Good+Morning");
    using (var twitpicResponse = (HttpWebResponse)request.GetResponse())
    {
        using (var reader = new StreamReader(twitpicResponse.GetResponseStream()))
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            string objText = reader.ReadToEnd();
            MyObject myojb = (MyObject)js.Deserialize(objText, typeof(MyObject));
        }
    }
Run Code Online (Sandbox Code Playgroud)

我在myojb中收到了Title,但是如何从myojb中检索每个Title.

c# asp.net json

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

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