Skip to content

csharp generated client sdk file upload doesn't work #5618

Closed
@joelharkes

Description

@joelharkes

I'm not sure if the problem is RestSharp or Swaggers but when you generate a file upload it doesnt work. It doesn't even send an http request (checked on receiving server and with fidller4)

A workaround fix i used to make it work was this: (But its a terrible hack):

public partial class ApiClient
{
	partial void InterceptRequest(IRestRequest request)
	{
		var files = request.Files.Select(x => x).ToArray();
		request.Files.Clear();
		foreach (var file in files)
		{
			var t = new MemoryStream();
			file.Writer(t);
			request.AddFileBytes(file.Name, t.ToArray(), file.FileName, file.ContentType);

		}
	}

}

the yaml file i used:

  /files/{eextra}/submit:
    post:
      description: |
        Upload a new file
      operationId: uploadFile
      consumes:
        - multipart/form-data
        - application/x-www-form-urlencoded
      tags:
        - Files
      parameters:
        - name: extra
          in: path
          description: extra name
          required: true
          type: string
          default: none
        - name: file
          in: formData
          description: The uploaded file data
          required: true
          type: file
        - name: filename
          in: formData
          description: The name of the file
          required: true
          type: string
        - name: overwrite
          in: formData
          description: Overwrite if exists
          required: true
          type: boolean
          default: true
        - name: prefix
          in: formData
          description: The prefix/folder to upload file to
          required: false
          type: string
          default: "/"
      responses:
        200:
          description: files response
        400:
          description: Bad Request/Validation error
          schema:
            $ref: '#/definitions/Error'
        default:
          description: unexpected error
          schema:
            $ref: '#/definitions/Error'

version: swagger gen 2.2.2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions