我正在尝试将记录发送到我的Web服务器,但该Web服务器从未被命中

我有这个小项目 我有一些食谱想与我的iPhone分享。 数据库具有此字段 字符串ID 字串名称 字符串配方_文本 字节[]图片

所以当我在iPhone上更改它时,我会调用此功能

+(void) sendRecipe:(BFRecipe *) recipe
{ 
    NSString * imageStringData = @"";
    if(recipe.recipeImage != nil)
        imageStringData = [UIImagePNGRepresentation(recipe.recipeImage) base64Encoding];

    NSDictionary * jsonRecord = [NSDictionary dictionaryWithObjectsAndKeys:recipe.recipeId,@"RecipeId",recipe.name,@"Name",recipe.recipeText,@"RecipeText",imageStringData,@"Item",nil];
    NSString *urlString =  [NSString stringWithFormat:@"%@/%@",[[NSUserDefaults standardUserDefaults ] objectForKey:@"Host"],@"UpdateRecipeItem"];

    NSMutableURLRequest *request = [NSMutableURLRequest new];
    request.HTTPMethod = @"POST";

    NSData *jsonBodyData = [NSJSONSerialization dataWithJSONObject:jsonRecord options:kNilOptions error:nil];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setvalue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setvalue:@"application/json" forHTTPHeaderField:@"accept"];
    [request setHTTPBody:jsonBodyData];
    NSURLSessionconfiguration *config = [NSURLSessionconfiguration defaultSessionconfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:config
                                                          delegate:nil
                                                     delegateQueue:[NSOperationQueue mainQueue]];
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData * _Nullable data,NSURLResponse * _Nullable response,NSError * _Nullable error) {


                                                NSHTTPURLResponse *asHTTPResponse = (NSHTTPURLResponse *) response;

                                                // set a breakpoint on the last NSLog and investigate the response in the debugger

                                                // if you get data,you can inspect that,too. If it's JSON,do one of these:


                                            }];
    [task resume];
}

我的MVC服务器具有这样的功能,但从未被称为“为什么”?

public void UpdateRecipeImage(string id)
        {
            recipe_item item = Model.recipe_item.FirstOrDefault(ri => ri.recipe_id == new Guid(id));
....

.....

....
}
kuerrcn 回答:我正在尝试将记录发送到我的Web服务器,但该Web服务器从未被命中

我发现您的目标代码中的调用部分存在问题

 NSString *urlString =  [NSString stringWithFormat:@"%@/%@",[[NSUserDefaults standardUserDefaults ] objectForKey:@"Host"],@"UpdateRecipeItem"];

您在这里调用@"UpdateRecipeItem",但是在mvc api上您有UpdateRecipeImage(string id)

所以您的命名存在问题。尝试调用正确的api名称,即UpdateRecipeImage(string id)

-或-

如果您要注意的是调用@"UpdateRecipeItem",请在此处发布带有参数的mvc api代码。我确定您为API端点缺少了一些东西。

更新:根据您在注释中共享的代码,尝试在您的api方法中添加[FromBody]。看下面的代码:

[HttpPost]
public void UpdateRecipeItem([FromBody] UpdateRecipeItem recipeItem)
{
    try
    {
        recipe_item item = Model.recipe_item.FirstOrDefault(ri => ri.recipe_id == new Guid(recipeItem.RecipeId));

希望您能理解。祝您编码愉快!

本文链接:https://www.f2er.com/3120090.html

大家都在问