我在连接GPT3 OpenAI,但始终无法成功发送POST请求(我参考了一些指南,但对他们来说是有效的…)。
private IEnumerator Upload ( ){ WWWForm form = new WWWForm(); form.AddField ( "prompt", prompt ); form.AddField ( "max_tokens", maxTokens ); form.AddField ( "model", model ); form.AddField ( "temperature", temperature ); using ( UnityWebRequest wR = UnityWebRequest.Post ( "https://api.openai.com/v1/completions", form ) ) { wR.SetRequestHeader ( "Authorization", "Bearer " + apiKey ); wR.SetRequestHeader ( "Content-Type", "json" ); yield return wR.SendWebRequest ( ); if ( wR.result != UnityWebRequest.Result.Success ) { Debug.Log ( "ERROR:\n" + wR.error ); } else { Debug.Log ( "Success:\n" + wR.result + "\nUpload Completed!); } }}
我的代码总是返回错误请求(即400 Bad Request
)。
回答:
从头部信息中删除”Content-Type”。内容不是JSON,而是表单数据。
例如:
using ( UnityWebRequest wR = UnityWebRequest.Post ( "https://api.openai.com/v1/completions", form ) ){ wR.SetRequestHeader ( "Authorization", "Bearer " + apiKey ); //wR.SetRequestHeader ( "Content-Type", "json" ); yield return wR.SendWebRequest ( ); if ( wR.result != UnityWebRequest.Result.Success ) { Debug.Log ( "ERROR:\n" + wR.error ); } else { Debug.Log ( "Success:\n" + wR.result + "\nUpload Completed!); }}