unity 向http://47.99.63.52:9602/api/upload post 关键字是image file是 C:\Users\Administrator\Desktop\1.jpg 代码如何写 完整的例子
时间: 2024-11-30 20:23:11 浏览: 16
在Unity中发送HTTP POST请求并将文件作为图像数据上传到指定URL,你可以使用C#中的HttpClient类。首先,确保已安装了`System.Net.Http`命名空间。下面是一个完整的示例代码:
```csharp
using System;
using System.IO;
using System.Net.Http;
public class ImageUploader : MonoBehaviour
{
private const string apiUrl = "http://47.99.63.52:9602/api/upload";
private string filePath = "C:\\Users\\Administrator\\Desktop\\1.jpg";
void UploadImage()
{
// 创建HttpClient实例
using var httpClient = new HttpClient();
// 创建MultipartFormDataContent对象用于组合文件和关键词
MultipartFormDataContent formData = new MultipartFormDataContent();
// 添加文件部分
HttpContent fileContent = new StreamContent(File.OpenRead(filePath));
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg"); // 根据实际文件类型设置
formData.Add(fileContent, "file", Path.GetFileName(filePath));
// 添加关键词部分
string keyword = "image"; // 这里填写你想使用的关键词
string textPart = $"keyword={WebUtility.UrlEncode(keyword)}"; // 对字符串进行编码处理
formData.Add(new StringContent(textPart), "keyword");
try
{
// 发送POST请求
HttpResponseMessage response = await httpClient.PostAsync(apiUrl, formData);
// 检查响应状态
if (response.IsSuccessStatusCode)
{
Debug.Log($"Image uploaded successfully. Server responded with {response.StatusCode}");
}
else
{
Debug.LogError($"Failed to upload image. Server response: {response.ReasonPhrase}");
}
}
catch (Exception ex)
{
Debug.LogError($"Error occurred while uploading image: {ex.Message}");
}
}
}
```
在这个例子中,你需要将`apiUrl`和`filePath`替换为你实际的服务器地址和图片路径。在Unity编辑器中,在需要执行此操作的地方调用`UploadImage()`函数即可。
阅读全文