首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sisense - REST API -重新发布不工作+ 500内部服务器错误

Sisense - REST API -重新发布不工作+ 500内部服务器错误
EN

Stack Overflow用户
提问于 2018-01-02 14:36:34
回答 1查看 486关注 0票数 0

使用JAVA,我尝试将仪表板重新发布给特定用户。它向我返回HTTP状态500。下面是它的代码。

代码语言:javascript
复制
String sisenseURL = surl; // This is correct URL to POST API for PUBLISH


String urlParameters = "force=true";
 byte[] postData = urlParameters.getBytes( StandardCharsets.UTF_8 );
 int postDataLength = postData.length;

 URL url = new URL( sisenseURL );
 HttpURLConnection conn= (HttpURLConnection) url.openConnection();

 conn.setDoOutput(true);
 conn.setInstanceFollowRedirects(false);
 conn.setRequestMethod("POST");
 conn.setRequestProperty("Content-Type", "application/json");
 conn.setRequestProperty("Accept", "application/json");
 conn.setRequestProperty("Content-Length", Integer.toString(postDataLength ));
 conn.setRequestProperty("Authorization", accessToken);
 conn.setUseCaches(false);



 try(DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) {
 wr.write( postData );
 }



 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
 final StringBuffer stringBuffer = new StringBuffer();
 String line;
 while ((line = in.readLine()) != null) {
 stringBuffer.append(line);
 }
 in.close();

该请求使用POSTMAN以及Sisense的Swagger UI运行文件。

任何帮助都将不胜感激。

提亚

Ashutosh

EN

回答 1

Stack Overflow用户

发布于 2018-01-04 05:21:18

这是一个用于sisense V6.7的java示例,使用rest API更新仪表板共享您没有共享有效负载,所以不确定这是否是问题所在,但下面的示例对我有效。我从here获取了sendPostRequest代码

代码语言:javascript
复制
import java.io.*;
import java.net.*;

public class Runner {
    public static void main(String[] args){
        try {
            //Dashboard shares payload
            String payload = "{\"sharesTo\":[{\"shareId\":\"58504c5221785b627cb4361d\",\"type\":\"user\",\"subscribe\":false},{\"shareId\":\"58505ba6ec4df9701a000019\",\"type\":\"user\",\"rule\":\"view\",\"subscribe\":false}]}";


            String str = sendPostRequest(getDashboardUrl(), payload);

            System.out.println("Done");
        }
        catch (RuntimeException e){

        }
    }

    public static String sendPostRequest(String requestUrl, String payload) {
        try {
            URL url = new URL(requestUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            connection.setDoInput(true);
            connection.setDoOutput(true);
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Accept", "application/json");
            connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
            connection.setRequestProperty("Authorization", getAuthorization());
            OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
            writer.write(payload);
            writer.close();
            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            StringBuffer jsonString = new StringBuffer();
            String line;
            while ((line = br.readLine()) != null) {
                jsonString.append(line);
            }
            br.close();
            connection.disconnect();
            return  jsonString.toString();
        } catch (Exception e) {
            throw new RuntimeException(e.getMessage());

        }

    }
    public static String getDashboardUrl(){
        //Sisense domain
        String baseURL = "http://localhost:8081";

        return baseURL + "/api/shares/dashboard/5850511cec4df9701a000013";
    }

    public  static String getAuthorization(){
        return "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiNTg1MDRjNTIyMTc4NWI2MjdjYjQzNjFkIiwiYXBpU2VjcmV0IjoiOGUwZDIyOWItY2VmMS0xYTE4LTNhYWEtYmY1ZmE1ZmNkNTExIiwiaWF0IjoxNTE1MDEzMzkxfQ.zgx0Nv8YztfM2rm5WTCnJ0R6C_n5V-HNkEZgAcINfs4";
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48056554

复制
相关文章

相似问题

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