Objective-C で torrent スクレーパーを作成しており、HTTP リクエストにAFNetworkingを使用しています。トラッカー リクエストのメタ情報の一部の sha1 ハッシュを送信する必要があります。ハッシュの作成に成功し、それが正しいことを確認しました。バイナリデータをエンコードしないため、ハッシュを NSString に入れることはできません。そのため、ハッシュを NSData オブジェクトに入れてから、送信するパラメーターに入れました。これは私が現在持っているものですが、常にエラーが返されます。ハッシュを送信するために使用しているメソッドにあると思います。また、ハッシュをURLエンコードしてから、それをNSStringに入れてみましたが、役に立ちませんでした
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
unsigned char infoHash[20];
[self.tracker generateTorrentInfoHash:infoHash];
const char peer_id[20] = "randomstringfornow";
[parameters setObject:[NSData dataWithBytes:&infoHash length:20] forKey:@"info_hash"];
[parameters setObject:[NSData dataWithBytes:&peer_id length:20] forKey:@"peer_id"];
[parameters setObject:@(8080) forKey:@"port"];
[parameters setObject:@(0) forKey:@"uploaded"];
[parameters setObject:@(self.tracker.metaInfo.totalFileSize) forKey:@"left"];
[parameters setObject:@(0) forKey:@"downloaded"];
[parameters setObject:@(0) forKey:@"compact"];
[parameters setObject:@"stopped" forKey:@"event"];
[self getPath:@"" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@",operation.responseString);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",operation.responseString);
}];
AFNetworkingでこれを行う方法があるかどうかは誰にもわかりませんか、それとも単純なものが欠けていることを願っています。