首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dart中共享Plex库

在Dart中共享Plex库
EN

Stack Overflow用户
提问于 2022-03-05 18:56:46
回答 1查看 84关注 0票数 0

嗨,我正在研究如何在dart中共享Plex库。在python中,我正在帮助自己编写这个工作脚本(它很有用)

代码语言:javascript
复制
https://gist.github.com/JonnyWong16/f8139216e2748cb367558070c1448636

不幸的是,我的代码返回了一个http错误400,错误请求。

注意:当我运行dart代码时,没有共享库。

也许有效载荷是不正确的:\x\x{e76f}谢谢您的帮助

代码语言:javascript
复制
import 'package:http/http.dart' as http;

class Server {
   String token, ip, port;
   Server(this.ip, this.port, this.token);

   share() async {
     var server_id = '00000000000000000000000000000000'; fake id 
     var library_section_ids = '97430074'; // right id , it works in python
     var invited_id = '50819899'; // right id , it works in python

     var headers = {
       'Accept': 'application/json',
       'X-Plex-Token': token,
     };

    var data =
    '["server_id": $server_id,'
    ' "shared_server":["library_section_ids":[$library_section_ids],'
    ' "invited_id":$invited_id]';

   var res = await http.post(
    Uri.parse(
        'https://plex.tv/api/servers/$server_id/shared_servers/'),
    headers: headers,
    body: data);
   if (res.statusCode != 200) {
     throw Exception('http.post error: statusCode= ${res.statusCode}');
   }
   print(res.body);
 }

}

代码语言:javascript
复制
void main(List<String> arguments) async {
  var srv = Server('xxx.yyy.xxx.yyy', '32400', '000000000-1111');
  await srv.share();

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-05 22:58:45

旧代码有一些错误,不能完美地编码我用'dio‘包解决的数据,这个链接帮助了我很多https://reqbin.com/

如果用户没有共享库,则此代码添加一个新的库。

代码语言:javascript
复制
import 'package:dio/dio.dart';

class Server {
   String token;
   Server(this.token);
   test() async {
      var serverId = '';
      var librarySectionIds = ;
      var invitedId = ;
      var dio = Dio();

      var data = {
         "server_id": serverId,
         "shared_server": {
         "library_section_ids": librarySectionIds,
         "invited_id": invitedId
         }
      };

    dio.options.headers['Accept'] = 'application/json';
    dio.options.headers["authorization"] = "Bearer $token";
    var response = await dio.post(
       'https://plex.tv/api/servers/$serverId/shared_servers/',
       data: data);
    print(response);

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71365116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档