小编Cod*_*dey的帖子

给httpclient添加参数

我在 Postman 中编写了一个 HTTP 请求,我想在我的应用程序中编写相同的请求。postman 中有一个选项可以查看 C# 请求的代码。在邮递员中,它使用RestSharp显示请求,因为我不想在我的项目中使用外部 NuGet 包,所以我正在尝试使用 .NET Framework 中的对象编写相同的请求。

RestSharp 代码如下所示:

var client = new RestClient("https://login.microsoftonline.com/04xxxxa7-xxxx-4e2b-xxxx-89xxxx1efc/oauth2/token");
var request = new RestRequest(Method.POST);       
request.AddHeader("Host", "login.microsoftonline.com");            
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("undefined", "grant_type=password&client_id=6e97fc60-xxx-445f-xxxx-a9b1bbc9eb2d&client_secret=4lS*xxxxxYn%5BENP1p%2FZT%2BpqmqF4Q&resource=https%3A%2F%2Fgraph.microsoft.com&username=myNameHere%402comp.onmicrosoft.com&password=xxxxxxxxxx6", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我尝试使用以下命令编写相同的请求HttpWebRequest

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://login.microsoftonline.com/0475dfa7-xxxxxxxx-896cf5e31efc/oauth2/token");
request.Method = "GET";
request.Referer = "login.microsoftonline.com";
request.ContentType = "application/x-www-form-urlencoded";

request.Headers.Add("grant_type", "password");
request.Headers.Add("client_id", "6e97fc60-xxxxxxxxx-a9bxxxxxb2d");
request.Headers.Add("client_secret", "4lSxxxxxxxxxxxmqF4Q");
request.Headers.Add("resource", "https://graph.microsoft.com");
request.Headers.Add("username", "xxxx@xxxxx.onmicrosoft.com");
request.Headers.Add("password", "xxxxxxxxxxxxx");

HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
Run Code Online (Sandbox Code Playgroud)

但我正在获取 HTML 内容,我认为我需要添加参数而不是标题,如何实现?

c# httpclient httpwebrequest

8
推荐指数
1
解决办法
2万
查看次数

将文件大块上传到SPS 2013-在行上不存在方法“ StartUpload”

我正在尝试将prem上的大文件(1 GB)从代码上传到SharePoint 2013。我遵循了本教程,从NuGet下载了“ Microsoft.SharePointOnline.CSOM”包,并尝试了以下代码:

public Microsoft.SharePoint.Client.File UploadFileSlicePerSlice(ClientContext ctx, string libraryName, string fileName, int fileChunkSizeInMB = 3)
    {
        // Each sliced upload requires a unique ID.
        Guid uploadId = Guid.NewGuid();

        // Get the name of the file.
        string uniqueFileName = Path.GetFileName(fileName);

        // Ensure that target library exists, and create it if it is missing.
        if (!LibraryExists(ctx, ctx.Web, libraryName))
        {
            CreateLibrary(ctx, ctx.Web, libraryName);
        }
        // Get the folder to upload into. 
        List docs = ctx.Web.Lists.GetByTitle(libraryName);
        ctx.Load(docs, …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint file-upload multipart csom

6
推荐指数
1
解决办法
295
查看次数

如何返回异步 IEnumerable<string>?

我有以下方法:

public async IEnumerable<string> GetListDriversAsync()
{
   var drives = await graphClient.Drive.Root.Children.Request().GetAsync();
        foreach (var d in drives)
            yield return d.ToString(); 
}
Run Code Online (Sandbox Code Playgroud)

但是编译器错误说:

“async 的返回类型必须是 void、Task 或 Task <T>

当方法为异步时如何返回 IEnumerable?

c#

2
推荐指数
2
解决办法
2529
查看次数

AJAX 标头中的希伯来语字符

我正在使用 AJAX 将文件发送到某些服务器,例如:

$.ajax({
            type: 'POST',
            async: true,
            crossDomain: true,
            url: 'http://' + address + '/api/file/upload',
            data: formData,
            processData: false,
            contentType: false, 
            headers: {
                "apiKey": "myKey",
                "FileName": "????.txt"
            },
            success: function (data, textStatus, jqXHR) {}});
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但是当我在标题中放置希伯来文文件名时,出现错误:

错误扫描文件类型错误:无法在“XMLHttpRequest”上执行“setRequestHeader”:值不是有效的 ByteString

标题:"FileName": "????.txt"不起作用。

javascript ajax utf-8

2
推荐指数
1
解决办法
208
查看次数

在JFrame上排列JPanel

我有一个框架(600X500),一个JPanel(50X100)和另一个JPanel(200X150),并且
我试图获得以下结果:

在此处输入图片说明

我的代码是:

public class BtnsPanel extends JPanel{
    public BtnsPanel()
    {
        setSize(50,100);
        setBackground(Color.RED);
    }
}
public class DialogPanel extends JPanel{
    public DialogPanel() {
        setSize(150,150);
        setBackground(Color.BLUE);
    }
}
public class MainFrame extends JFrame{  
    public MainFrame()
    {
        setSize(600,500);
        setLayout(new BorderLayout());
        add(new BtnsPanel(), BorderLayout.CENTER);
        add(new DialogPanel(), BorderLayout.CENTER);        
    }

    public static void main(String[] args){                
                new MainFrame().setVisible(true);                   
    }
}
Run Code Online (Sandbox Code Playgroud)

代码结果:

在此处输入图片说明

那不是预期的结果。

java swing

0
推荐指数
1
解决办法
268
查看次数