当前位置: 首页 > 面试题库 >

我如何将json字符串发布到服务器

卓胜
2023-03-14
问题内容

这是我必须发布的json字符串…

{
    "data": {
        "description": "",
        "current_value": "",
        "serialno": "",
        "condition": "",
        "category": "category",
        "purchase_value": "",
        "new_or_used": "",
        "gift_or_purchase": "",
        "image": ""
    },
    "subtype": "fd3102d8-bc19-424b-bca2-774a8fd7ea6f"
}

如何发布为JSON?


问题答案:

当然,这是一个重复的问题,但这是完整的示例代码,作为一个长例程。只需复制并粘贴。

首先设置JSON …

-(void)sendTestJsonCommand
    {
    NSMutableDictionary *dict = @{
        @"heights":@"4_5_7",
        @"score":@"4",
        @"title":@"Some Title",
        @"textBody":@"Some Long Text",
        @"happy":@"y"
        }.mutableCopy;

    NSError *serr;

    NSData *jsonData = [NSJSONSerialization
        dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&serr];

    if (serr)
        {
        NSLog(@"Error generating json data for send dictionary...");
        NSLog(@"Error (%@), error: %@", dict, serr);
        return;
        }

    NSLog(@"Successfully generated JSON for send dictionary");
    NSLog(@"now sending this dictionary...\n%@\n\n\n", dict);

接下来,正确异步地将命令和json发送到您的服务器…

#define appService [NSURL \
  URLWithString:@"http://www.corp.com/apps/function/user/pass/id/etc"]

    // Create request object
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:appService];

    // Set method, body & content-type
    request.HTTPMethod = @"POST";
    request.HTTPBody = jsonData;
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];

    [request setValue:
        [NSString stringWithFormat:@"%lu",
        (unsigned long)[jsonData length]] forHTTPHeaderField:@"Content-Length"];

    // you would almost certainly use MBProgressHUD at this point
    // to display some sort of spinner or similar action on the UX

最后,(A)使用NSURLConnection正确连接,(B)正确解释从服务器返回给您的信息。

    [NSURLConnection sendAsynchronousRequest:request
        queue:[NSOperationQueue mainQueue]
        completionHandler:^(NSURLResponse *r, NSData *data, NSError *error)
        {

        if (!data)
            {
            NSLog(@"No data returned from server, error ocurred: %@", error);
            NSString *userErrorText = [NSString stringWithFormat:
               @"Error communicating with server: %@", error.localizedDescription]
            return;
            }

        NSLog(@"got the NSData fine. here it is...\n%@\n", data);
        NSLog(@"next step, deserialising");

        NSError *deserr;
        NSDictionary *responseDict = [NSJSONSerialization
                                      JSONObjectWithData:data
                                      options:kNilOptions
                                      error:&deserr];

        NSLog(@"so, here's the responseDict\n\n\n%@\n\n\n", responseDict);

        // LOOK at that output on your console to learn how to parse it.
        // to get individual values example blah = responseDict[@"fieldName"];
        }];

    }

希望它可以节省一些键入的时间!



 类似资料:
  • 我试图将JSON作为字符串(而不是对象)发送到服务器(在本例中,它是一个WebAPI)。我总是得到一个错误代码500。 当请求被获取时,我成功地从服务器获得响应,并且没有向服务器发送数据。这是通过JsonObjectRequest实现的。 现在,我尝试发送一个以JSON作为字符串的POST请求。为此,我尽力了 JSONObject请求 StringRequest GsonRequest JsonR

  • 问题内容: 我正在使用JAX-RS的Jersey实现。我想将JSON对象发布到该服务,但收到错误代码415不支持的媒体类型。我想念什么? 这是我的代码: 这是Order对象: 这样的GET请求可以完美地工作,并以JSON格式返回订单: 但是,像这样的POST请求返回415: 问题答案: 答案非常简单。我必须在请求中添加标头,其值为。没有此标头,Jersey不知道如何处理请求正文(尽管有注释)!

  • 问题内容: 我必须将以下数据发送到URl的Web服务 要发送的数据格式为: 其中,和是键,并具有通过edittext字符串获取的相应值字符串。我在单击按钮时发布此数据。 我没有收到任何回应,因为我试图与我的合作开发者在他的iPhone相同的应用程序iPhone版本中与我的合作开发者进行反检查,因为服务器说用户名和密码无效。 我的课是: 请协助我,我是JSON和Android.Thanx解析的新手。

  • 问题内容: 我正在尝试将JSON对象发布到asp.net Web服务。 我的json看起来像这样: 我正在使用json2.js对我的json对象进行stringyfy。 我正在使用jQuery将其发布到我的Web服务。 我收到以下错误: “无效的JSON原语: 我发现了一堆与此相关的帖子,这似乎是一个非常普遍的问题,但我没有尝试解决此问题。 当萤火虫被发布到服务器时,它看起来像这样: marker

  • 问题内容: 我创建了一个需要发布到jersey的json,这是由grizzly运行的具有REST网络服务的服务器获取需要输出的传入json对象。我正在尝试,但不确定如何正确实施。 我有一个在加载时运行此方法的html文件 问题答案: 要将json发送到服务器,首先必须创建json 这就是构造ajax请求以将json作为post var发送的方式。 json现在将在post var中。

  • 我试图通过Spring Boot向RESTAPI发送一个字符串,但我一直收到400:错误的请求。我通过postman检查了这个json是否被API接受: 我编写了以下代码发布到此服务: 货币枚举如下所示: 我尝试将其作为枚举值和字符串值发送,但均无效。